
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* 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 */

void __regparm2
ExportCMYKOQuantum(Image *image,QuantumInfo *quantum_info,MagickSizeType number_pixels,Quantum *p,
                  uchar *q,ExceptionInfo *exception)

{
  float fVar1;
  double dVar2;
  longlong lVar3;
  double dVar4;
  ushort uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  byte bVar9;
  uchar uVar10;
  uchar uVar11;
  uchar uVar12;
  int iVar13;
  byte bVar14;
  uchar uVar15;
  PixelChannelMap *pPVar16;
  uint uVar17;
  uchar uVar18;
  uint uVar19;
  uchar local_8c;
  uchar local_84;
  uchar local_7c;
  uchar local_74;
  uchar local_6c;
  int local_64;
  undefined8 local_5c;
  int local_4c;
  int iStack_48;
  int local_40;
  uchar local_34;
  
  dVar4 = DAT_002a8000;
  dVar2 = _DAT_0029f148;
  if (image->colorspace != CMYKColorspace) {
    ThrowMagickException
              (exception,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,ImageError,
               "ColorSeparatedImageRequired","`%s\'",image->filename);
    return;
  }
  uVar17 = quantum_info->depth;
  if (uVar17 == 0x10) {
    if (quantum_info->format == FloatingPointQuantumFormat) {
      if ((int)number_pixels < 1) {
        return;
      }
      local_64 = 0;
      do {
        uVar5 = SinglePrecisionToHalf
                          ((float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset]));
        uVar10 = (uchar)(uVar5 >> 8);
        if (quantum_info->endian == LSBEndian) {
          *q = (uchar)uVar5;
          q[1] = uVar10;
        }
        else {
          *q = uVar10;
          q[1] = (uchar)uVar5;
        }
        uVar5 = SinglePrecisionToHalf
                          ((float)((longdouble)_DAT_0029f148 *
                                  (longdouble)p[image->channel_map[1].offset]));
        uVar10 = (uchar)(uVar5 >> 8);
        if (quantum_info->endian == LSBEndian) {
          q[2] = (uchar)uVar5;
          q[3] = uVar10;
        }
        else {
          q[2] = uVar10;
          q[3] = (uchar)uVar5;
        }
        uVar5 = SinglePrecisionToHalf
                          ((float)((longdouble)_DAT_0029f148 *
                                  (longdouble)p[image->channel_map[2].offset]));
        uVar10 = (uchar)(uVar5 >> 8);
        if (quantum_info->endian == LSBEndian) {
          q[4] = (uchar)uVar5;
          q[5] = uVar10;
        }
        else {
          q[5] = (uchar)uVar5;
          q[4] = uVar10;
        }
        if (image->channel_map[3].traits == UndefinedPixelTrait) {
          fVar1 = 0.0;
        }
        else {
          fVar1 = (float)((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset]);
        }
        uVar5 = SinglePrecisionToHalf(fVar1);
        uVar10 = (uchar)(uVar5 >> 8);
        if (quantum_info->endian == LSBEndian) {
          q[6] = (uchar)uVar5;
          q[7] = uVar10;
        }
        else {
          q[6] = uVar10;
          q[7] = (uchar)uVar5;
        }
        fVar1 = 0.0;
        if (image->channel_map[4].traits == BlendPixelTrait) {
          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * (float)_DAT_0029f148;
        }
        uVar5 = SinglePrecisionToHalf(fVar1);
        uVar10 = (uchar)(uVar5 >> 8);
        if (quantum_info->endian == LSBEndian) {
          q[8] = (uchar)uVar5;
          q[9] = uVar10;
        }
        else {
          q[8] = uVar10;
          q[9] = (uchar)uVar5;
        }
        q = q + quantum_info->pad + 10;
        local_64 = local_64 + 1;
        p = p + image->number_channels;
      } while (local_64 != (int)number_pixels);
      return;
    }
    if ((int)number_pixels < 1) {
      return;
    }
    local_64 = 0;
    do {
      dVar2 = p[image->channel_map->offset];
      if (dVar2 <= 0.0) {
        uVar10 = '\0';
        uVar11 = '\0';
        uVar12 = '\0';
        uVar15 = '\0';
        if (quantum_info->endian != LSBEndian) goto LAB_0013caf0;
LAB_0013cf50:
        *q = uVar10;
        q[1] = uVar12;
      }
      else {
        if ((double)DAT_0029f710 <= dVar2) {
          iVar13 = -1;
          uVar15 = 0xff;
        }
        else {
          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);
          uVar15 = (uchar)((uint)iVar13 >> 8);
        }
        uVar11 = (uchar)iVar13;
        uVar10 = uVar11;
        uVar12 = uVar15;
        if (quantum_info->endian == LSBEndian) goto LAB_0013cf50;
LAB_0013caf0:
        *q = uVar15;
        q[1] = uVar11;
      }
      dVar2 = p[image->channel_map[1].offset];
      if (dVar2 <= 0.0) {
        uVar10 = '\0';
        uVar12 = '\0';
        uVar11 = '\0';
        if (quantum_info->endian != LSBEndian) goto LAB_0013cb64;
LAB_0013cf28:
        q[2] = uVar10;
        q[3] = uVar11;
      }
      else {
        if ((double)DAT_0029f710 <= dVar2) {
          iVar13 = -1;
          uVar11 = 0xff;
        }
        else {
          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);
          uVar11 = (uchar)((uint)iVar13 >> 8);
        }
        uVar12 = (uchar)iVar13;
        uVar10 = uVar12;
        if (quantum_info->endian == LSBEndian) goto LAB_0013cf28;
LAB_0013cb64:
        q[3] = uVar12;
        q[2] = uVar11;
      }
      dVar2 = p[image->channel_map[2].offset];
      if (dVar2 <= 0.0) {
        uVar10 = '\0';
        uVar12 = '\0';
        uVar11 = '\0';
        if (quantum_info->endian != LSBEndian) goto LAB_0013cbe0;
LAB_0013cf00:
        q[4] = uVar10;
        q[5] = uVar11;
      }
      else {
        if ((double)DAT_0029f710 <= dVar2) {
          iVar13 = -1;
          uVar11 = 0xff;
        }
        else {
          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);
          uVar11 = (uchar)((uint)iVar13 >> 8);
        }
        uVar12 = (uchar)iVar13;
        uVar10 = uVar12;
        if (quantum_info->endian == LSBEndian) goto LAB_0013cf00;
LAB_0013cbe0:
        q[4] = uVar11;
        q[5] = uVar12;
      }
      if ((image->channel_map[3].traits == UndefinedPixelTrait) ||
         (dVar2 = p[image->channel_map[3].offset], dVar2 <= 0.0)) {
        uVar11 = '\0';
        uVar15 = '\0';
        uVar10 = '\0';
        uVar12 = '\0';
        if (quantum_info->endian != LSBEndian) goto LAB_0013ca13;
LAB_0013cc16:
        uVar18 = '\0';
        q[6] = uVar10;
        q[7] = uVar12;
        pPVar16 = image->channel_map;
        iVar13 = 0;
        if (pPVar16[4].traits != BlendPixelTrait) goto LAB_0013ca40;
LAB_0013cc36:
        uVar18 = '\0';
        iVar13 = 0;
        fVar1 = DAT_0029f710 - (float)p[pPVar16[4].offset];
        if (fVar1 <= 0.0) goto LAB_0013ca40;
        if (DAT_0029f710 <= fVar1) {
          iVar13 = -1;
          uVar18 = 0xff;
          goto LAB_0013ca40;
        }
        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);
        uVar18 = (uchar)((uint)iVar13 >> 8);
        if (quantum_info->endian != LSBEndian) goto LAB_0013ca4a;
LAB_0013cca5:
        q[8] = (uchar)iVar13;
        q[9] = uVar18;
      }
      else {
        if ((double)DAT_0029f710 <= dVar2) {
          iVar13 = -1;
          uVar15 = 0xff;
        }
        else {
          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);
          uVar15 = (uchar)((uint)iVar13 >> 8);
        }
        uVar11 = (uchar)iVar13;
        uVar10 = uVar11;
        uVar12 = uVar15;
        if (quantum_info->endian == LSBEndian) goto LAB_0013cc16;
LAB_0013ca13:
        uVar18 = '\0';
        q[6] = uVar15;
        q[7] = uVar11;
        pPVar16 = image->channel_map;
        iVar13 = 0;
        if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013cc36;
LAB_0013ca40:
        if (quantum_info->endian == LSBEndian) goto LAB_0013cca5;
LAB_0013ca4a:
        q[9] = (uchar)iVar13;
        q[8] = uVar18;
      }
      local_64 = local_64 + 1;
      q = q + quantum_info->pad + 10;
      p = p + image->number_channels;
      if (local_64 == (int)number_pixels) {
        return;
      }
    } while( true );
  }
  if (uVar17 < 0x11) {
    if (uVar17 == 8) {
      if ((int)number_pixels < 1) {
        return;
      }
      iVar13 = 0;
      do {
        uVar10 = '\0';
        if (0.0 < p[image->channel_map->offset]) {
          dVar2 = p[image->channel_map->offset] / (double)DAT_002a7ff0;
          uVar10 = 0xff;
          if (dVar2 < (double)DAT_002a7ff4) {
            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);
          }
        }
        *q = uVar10;
        uVar10 = '\0';
        if (0.0 < p[image->channel_map[1].offset]) {
          dVar2 = p[image->channel_map[1].offset] / (double)DAT_002a7ff0;
          uVar10 = 0xff;
          if (dVar2 < (double)DAT_002a7ff4) {
            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);
          }
        }
        q[1] = uVar10;
        uVar10 = '\0';
        if (0.0 < p[image->channel_map[2].offset]) {
          dVar2 = p[image->channel_map[2].offset] / (double)DAT_002a7ff0;
          uVar10 = 0xff;
          if (dVar2 < (double)DAT_002a7ff4) {
            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);
          }
        }
        q[2] = uVar10;
        uVar10 = '\0';
        if ((image->channel_map[3].traits != UndefinedPixelTrait) &&
           (0.0 < p[image->channel_map[3].offset])) {
          dVar2 = p[image->channel_map[3].offset] / (double)DAT_002a7ff0;
          uVar10 = 0xff;
          if (dVar2 < (double)DAT_002a7ff4) {
            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);
          }
        }
        q[3] = uVar10;
        uVar10 = '\0';
        if ((image->channel_map[4].traits == BlendPixelTrait) &&
           (0.0 < DAT_0029f710 - (float)p[image->channel_map[4].offset])) {
          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) / DAT_002a7ff0;
          uVar10 = 0xff;
          if (fVar1 < DAT_002a7ff4) {
            uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);
          }
        }
        q[4] = uVar10;
        iVar13 = iVar13 + 1;
        p = p + image->number_channels;
        q = q + quantum_info->pad + 5;
      } while (iVar13 != (int)number_pixels);
      return;
    }
LAB_0013d3f8:
    local_4c = 0;
    iStack_48 = 0;
    if (uVar17 == 0) goto LAB_0013be09;
  }
  else {
    if (uVar17 == 0x20) {
      if (quantum_info->format == FloatingPointQuantumFormat) {
        if ((int)number_pixels < 1) {
          return;
        }
        local_64 = 0;
        do {
          fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale
                  + (float)quantum_info->minimum;
          uVar10 = (uchar)((uint)fVar1 >> 8);
          uVar11 = (uchar)((uint)fVar1 >> 0x10);
          uVar12 = (uchar)((uint)fVar1 >> 0x18);
          if (quantum_info->endian == LSBEndian) {
            *q = SUB41(fVar1,0);
            q[1] = uVar10;
            q[2] = uVar11;
            q[3] = uVar12;
          }
          else {
            q[1] = uVar11;
            *q = uVar12;
            q[2] = uVar10;
            q[3] = SUB41(fVar1,0);
          }
          fVar1 = (float)p[image->channel_map[1].offset] *
                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;
          uVar10 = (uchar)((uint)fVar1 >> 8);
          uVar12 = (uchar)((uint)fVar1 >> 0x18);
          uVar11 = (uchar)((uint)fVar1 >> 0x10);
          if (quantum_info->endian == LSBEndian) {
            q[4] = SUB41(fVar1,0);
            q[5] = uVar10;
            q[6] = uVar11;
            q[7] = uVar12;
          }
          else {
            q[4] = uVar12;
            q[6] = uVar10;
            q[5] = uVar11;
            q[7] = SUB41(fVar1,0);
          }
          fVar1 = (float)p[image->channel_map[2].offset] *
                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;
          uVar10 = (uchar)((uint)fVar1 >> 8);
          uVar11 = (uchar)((uint)fVar1 >> 0x18);
          uVar12 = (uchar)((uint)fVar1 >> 0x10);
          if (quantum_info->endian == LSBEndian) {
            q[8] = SUB41(fVar1,0);
            q[10] = uVar12;
            q[9] = uVar10;
            q[0xb] = uVar11;
          }
          else {
            q[10] = uVar10;
            q[8] = uVar11;
            q[9] = uVar12;
            q[0xb] = SUB41(fVar1,0);
          }
          if (image->channel_map[3].traits == UndefinedPixelTrait) {
            fVar1 = 0.0;
          }
          else {
            fVar1 = (float)p[image->channel_map[3].offset];
          }
          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;
          uVar10 = (uchar)((uint)fVar1 >> 8);
          uVar12 = (uchar)((uint)fVar1 >> 0x18);
          uVar11 = (uchar)((uint)fVar1 >> 0x10);
          if (quantum_info->endian == LSBEndian) {
            q[0xc] = SUB41(fVar1,0);
            q[0xe] = uVar11;
            q[0xd] = uVar10;
            q[0xf] = uVar12;
          }
          else {
            q[0xe] = uVar10;
            q[0xc] = uVar12;
            q[0xd] = uVar11;
            q[0xf] = SUB41(fVar1,0);
          }
          if (image->channel_map[4].traits == BlendPixelTrait) {
            fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset];
          }
          else {
            fVar1 = 0.0;
          }
          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;
          uVar10 = (uchar)((uint)fVar1 >> 8);
          uVar11 = (uchar)((uint)fVar1 >> 0x18);
          uVar12 = (uchar)((uint)fVar1 >> 0x10);
          if (quantum_info->endian == LSBEndian) {
            q[0x10] = SUB41(fVar1,0);
            q[0x12] = uVar12;
            q[0x11] = uVar10;
            q[0x13] = uVar11;
          }
          else {
            q[0x12] = uVar10;
            q[0x10] = uVar11;
            q[0x11] = uVar12;
            q[0x13] = SUB41(fVar1,0);
          }
          local_64 = local_64 + 1;
          q = q + quantum_info->pad + 0x14;
          p = p + image->number_channels;
        } while (local_64 != (int)number_pixels);
        return;
      }
      if ((int)number_pixels < 1) {
        return;
      }
      local_64 = 0;
      do {
        if (p[image->channel_map->offset] <= 0.0) {
          local_34 = '\0';
          uVar11 = '\0';
          uVar10 = '\0';
          uVar12 = '\0';
        }
        else {
          dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;
          if (dVar4 <= dVar2) {
            local_34 = 0xff;
            uVar11 = 0xff;
            uVar10 = 0xff;
            uVar12 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);
            local_34 = (uchar)lVar3;
            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);
            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);
            uVar11 = (uchar)((ulonglong)lVar3 >> 8);
          }
        }
        if (quantum_info->endian == LSBEndian) {
          q[1] = uVar11;
          *q = local_34;
          q[2] = uVar10;
          q[3] = uVar12;
        }
        else {
          q[2] = uVar11;
          *q = uVar12;
          q[3] = local_34;
          q[1] = uVar10;
        }
        if (p[image->channel_map[1].offset] <= 0.0) {
          local_34 = '\0';
          uVar11 = '\0';
          uVar10 = '\0';
          uVar12 = '\0';
        }
        else {
          dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;
          if (DAT_002a8000 <= dVar2) {
            local_34 = 0xff;
            uVar11 = 0xff;
            uVar10 = 0xff;
            uVar12 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);
            local_34 = (uchar)lVar3;
            uVar11 = (uchar)((ulonglong)lVar3 >> 8);
            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);
            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);
          }
        }
        if (quantum_info->endian == LSBEndian) {
          q[4] = local_34;
          q[6] = uVar10;
          q[5] = uVar11;
          q[7] = uVar12;
        }
        else {
          q[4] = uVar12;
          q[5] = uVar10;
          q[6] = uVar11;
          q[7] = local_34;
        }
        if (p[image->channel_map[2].offset] <= 0.0) {
          uVar10 = '\0';
          uVar15 = '\0';
          uVar11 = '\0';
          uVar12 = '\0';
        }
        else {
          dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;
          if (DAT_002a8000 <= dVar2) {
            uVar10 = 0xff;
            uVar15 = 0xff;
            uVar11 = 0xff;
            uVar12 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);
            uVar15 = (uchar)((ulonglong)lVar3 >> 8);
            uVar10 = (uchar)lVar3;
            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);
            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);
          }
        }
        if (quantum_info->endian == LSBEndian) {
          q[10] = uVar11;
          q[0xb] = uVar12;
          q[8] = uVar10;
          q[9] = uVar15;
        }
        else {
          q[9] = uVar11;
          q[10] = uVar15;
          q[8] = uVar12;
          q[0xb] = uVar10;
        }
        if ((image->channel_map[3].traits == UndefinedPixelTrait) ||
           (p[image->channel_map[3].offset] <= 0.0)) {
          local_34 = '\0';
          uVar11 = '\0';
          uVar10 = '\0';
          uVar12 = '\0';
        }
        else {
          dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;
          if (DAT_002a8000 <= dVar2) {
            local_34 = 0xff;
            uVar11 = 0xff;
            uVar10 = 0xff;
            uVar12 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);
            local_34 = (uchar)lVar3;
            uVar11 = (uchar)((ulonglong)lVar3 >> 8);
            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);
            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);
          }
        }
        if (quantum_info->endian == LSBEndian) {
          q[0xc] = local_34;
          q[0xe] = uVar10;
          q[0xd] = uVar11;
          q[0xf] = uVar12;
        }
        else {
          q[0xc] = uVar12;
          q[0xd] = uVar10;
          q[0xe] = uVar11;
          q[0xf] = local_34;
        }
        if ((image->channel_map[4].traits != BlendPixelTrait) ||
           (DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0)) {
          uVar10 = '\0';
          uVar15 = '\0';
          uVar12 = '\0';
          uVar11 = '\0';
        }
        else {
          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;
          if ((float)DAT_002a8000 <= fVar1) {
            uVar10 = 0xff;
            uVar15 = 0xff;
            uVar12 = 0xff;
            uVar11 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);
            uVar15 = (uchar)((ulonglong)lVar3 >> 8);
            uVar10 = (uchar)lVar3;
            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);
            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);
          }
        }
        if (quantum_info->endian == LSBEndian) {
          q[0x12] = uVar12;
          q[0x13] = uVar11;
          q[0x10] = uVar10;
          q[0x11] = uVar15;
        }
        else {
          q[0x11] = uVar12;
          q[0x12] = uVar15;
          q[0x10] = uVar11;
          q[0x13] = uVar10;
        }
        local_64 = local_64 + 1;
        q = q + quantum_info->pad + 0x14;
        p = p + image->number_channels;
      } while (local_64 != (int)number_pixels);
      return;
    }
    if (uVar17 != 0x40) goto LAB_0013d3f8;
    if (quantum_info->format == FloatingPointQuantumFormat) {
      if ((int)number_pixels < 1) {
        return;
      }
      local_64 = 0;
      do {
        dVar2 = p[image->channel_map->offset] * (quantum_info->state).inverse_scale +
                quantum_info->minimum;
        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);
        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);
        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);
        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);
        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);
        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);
        local_8c = (uchar)((ulonglong)dVar2 >> 8);
        if (quantum_info->endian == LSBEndian) {
          *q = SUB81(dVar2,0);
          q[4] = uVar12;
          q[5] = uVar10;
          q[1] = local_8c;
          q[2] = local_6c;
          q[3] = local_74;
          q[6] = local_7c;
          q[7] = local_84;
        }
        else {
          q[2] = uVar10;
          q[3] = uVar12;
          q[7] = SUB81(dVar2,0);
          q[4] = local_74;
          *q = local_84;
          q[5] = local_6c;
          q[1] = local_7c;
          q[6] = local_8c;
        }
        dVar2 = p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +
                quantum_info->minimum;
        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);
        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);
        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);
        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);
        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);
        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);
        local_8c = (uchar)((ulonglong)dVar2 >> 8);
        if (quantum_info->endian == LSBEndian) {
          q[8] = SUB81(dVar2,0);
          q[0xc] = uVar12;
          q[0xd] = uVar10;
          q[9] = local_8c;
          q[0xe] = local_7c;
          q[0xf] = local_84;
          q[10] = local_6c;
          q[0xb] = local_74;
        }
        else {
          q[0xb] = uVar12;
          q[10] = uVar10;
          q[0xf] = SUB81(dVar2,0);
          q[0xc] = local_74;
          q[8] = local_84;
          q[0xd] = local_6c;
          q[9] = local_7c;
          q[0xe] = local_8c;
        }
        dVar2 = p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +
                quantum_info->minimum;
        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);
        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);
        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);
        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);
        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);
        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);
        local_8c = (uchar)((ulonglong)dVar2 >> 8);
        if (quantum_info->endian == LSBEndian) {
          q[0x14] = uVar10;
          q[0x10] = SUB81(dVar2,0);
          q[0x11] = local_8c;
          q[0x12] = local_6c;
          q[0x13] = local_74;
          q[0x15] = uVar12;
          q[0x16] = local_7c;
          q[0x17] = local_84;
        }
        else {
          q[0x13] = uVar10;
          q[0x17] = SUB81(dVar2,0);
          q[0x10] = local_84;
          q[0x11] = local_7c;
          q[0x12] = uVar12;
          q[0x14] = local_74;
          q[0x15] = local_6c;
          q[0x16] = local_8c;
        }
        if (image->channel_map[3].traits == UndefinedPixelTrait) {
          dVar2 = 0.0;
        }
        else {
          dVar2 = p[image->channel_map[3].offset];
        }
        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;
        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);
        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);
        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);
        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);
        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);
        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);
        local_8c = (uchar)((ulonglong)dVar2 >> 8);
        if (quantum_info->endian == LSBEndian) {
          q[0x1c] = uVar10;
          q[0x1d] = uVar12;
          q[0x18] = SUB81(dVar2,0);
          q[0x19] = local_8c;
          q[0x1e] = local_7c;
          q[0x1a] = local_6c;
          q[0x1b] = local_74;
          q[0x1f] = local_84;
        }
        else {
          q[0x1b] = uVar10;
          q[0x1f] = SUB81(dVar2,0);
          q[0x1c] = local_74;
          q[0x18] = local_84;
          q[0x1d] = local_6c;
          q[0x19] = local_7c;
          q[0x1a] = uVar12;
          q[0x1e] = local_8c;
        }
        if (image->channel_map[4].traits == BlendPixelTrait) {
          dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset];
        }
        else {
          dVar2 = 0.0;
        }
        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;
        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);
        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);
        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);
        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);
        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);
        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);
        local_8c = (uchar)((ulonglong)dVar2 >> 8);
        if (quantum_info->endian == LSBEndian) {
          q[0x20] = SUB81(dVar2,0);
          q[0x24] = uVar10;
          q[0x21] = local_8c;
          q[0x22] = local_6c;
          q[0x23] = local_74;
          q[0x25] = uVar12;
          q[0x26] = local_7c;
          q[0x27] = local_84;
        }
        else {
          q[0x23] = uVar10;
          q[0x27] = SUB81(dVar2,0);
          q[0x20] = local_84;
          q[0x21] = local_7c;
          q[0x22] = uVar12;
          q[0x24] = local_74;
          q[0x25] = local_6c;
          q[0x26] = local_8c;
        }
        local_64 = local_64 + 1;
        q = q + quantum_info->pad + 0x28;
        p = p + image->number_channels;
      } while (local_64 != (int)number_pixels);
      return;
    }
  }
  uVar8 = 0;
  if (uVar17 < 0x41) {
    uVar8 = uVar17;
  }
  bVar9 = (byte)(uVar8 - 1);
  bVar14 = bVar9 & 0x1f;
  uVar6 = 2 << (bVar9 & 0x1f);
  uVar7 = uVar6;
  uVar19 = 0 << bVar14 | 2U >> 0x20 - bVar14;
  if ((uVar8 - 1 & 0x20) != 0) {
    uVar7 = 0;
    uVar19 = uVar6;
  }
  local_4c = uVar7 - 1;
  iStack_48 = (uVar19 - 1) + (uint)(uVar7 != 0);
LAB_0013be09:
  if ((int)number_pixels < 1) {
    return;
  }
  local_40 = 0;
  do {
    local_5c = 0;
    pPVar16 = image->channel_map;
    if (0.0 < p[pPVar16->offset]) {
      fVar1 = (float)CONCAT44(iStack_48,local_4c);
      if (iStack_48 < 0) {
        fVar1 = fVar1 + DAT_0029f714;
      }
      local_5c = -1;
      dVar2 = ((double)fVar1 * p[pPVar16->offset]) / (double)DAT_0029f710;
      if (dVar2 < (double)DAT_0029f714) {
        dVar2 = dVar2 + (double)DAT_0029f124;
        if ((double)DAT_0029f134 <= dVar2) {
          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);
          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
        }
        else {
          local_5c = (longlong)ROUND(dVar2);
        }
      }
    }
    uVar8 = (quantum_info->state).bits;
    if (uVar8 == 0) {
      (quantum_info->state).bits = 8;
      uVar8 = 8;
    }
    if ((int)uVar17 < 1) {
      dVar2 = p[pPVar16[1].offset];
      if (!NAN(dVar2)) goto LAB_0013bffe;
      local_5c = 0;
    }
    else {
      do {
        while( true ) {
          uVar19 = uVar8;
          if (uVar17 <= uVar8) {
            uVar19 = uVar17;
          }
          uVar7 = uVar17 - uVar19;
          uVar17 = 0;
          if (-1 < (int)uVar7) {
            uVar17 = uVar7;
          }
          if (uVar8 == 8) {
            *q = '\0';
          }
          uVar8 = uVar8 - uVar19;
          bVar14 = (byte)uVar17 & 0x1f;
          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;
          if ((uVar17 & 0x20) != 0) {
            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);
          }
          (quantum_info->state).bits = uVar8;
          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));
          if ((uVar8 & 0x20) != 0) {
            bVar14 = 0;
          }
          *q = *q | bVar14;
          if (uVar8 != 0) break;
          q = q + 1;
          (quantum_info->state).bits = 8;
          uVar8 = 8;
          if ((int)uVar7 < 1) goto LAB_0013bfd2;
        }
        uVar8 = (quantum_info->state).bits;
      } while (0 < (int)uVar7);
LAB_0013bfd2:
      pPVar16 = image->channel_map;
      uVar17 = quantum_info->depth;
      dVar2 = p[pPVar16[1].offset];
      if (NAN(dVar2)) {
        local_5c = 0;
      }
      else {
LAB_0013bffe:
        local_5c = 0;
        if (0.0 < dVar2) {
          fVar1 = (float)CONCAT44(iStack_48,local_4c);
          if (iStack_48 < 0) {
            fVar1 = fVar1 + DAT_0029f714;
          }
          local_5c = -1;
          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;
          if (dVar2 < (double)DAT_0029f714) {
            dVar2 = dVar2 + (double)DAT_0029f124;
            if ((double)DAT_0029f134 <= dVar2) {
              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);
              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
            }
            else {
              local_5c = (longlong)ROUND(dVar2);
            }
          }
        }
      }
      if (uVar8 == 0) {
        (quantum_info->state).bits = 8;
        uVar8 = 8;
      }
    }
    if ((int)uVar17 < 1) {
      dVar2 = p[pPVar16[2].offset];
      if (!NAN(dVar2)) goto LAB_0013c1b8;
      local_5c = 0;
    }
    else {
      do {
        while( true ) {
          uVar19 = uVar8;
          if (uVar17 <= uVar8) {
            uVar19 = uVar17;
          }
          uVar7 = uVar17 - uVar19;
          uVar17 = 0;
          if (-1 < (int)uVar7) {
            uVar17 = uVar7;
          }
          if (uVar8 == 8) {
            *q = '\0';
          }
          uVar8 = uVar8 - uVar19;
          bVar14 = (byte)uVar17 & 0x1f;
          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;
          if ((uVar17 & 0x20) != 0) {
            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);
          }
          (quantum_info->state).bits = uVar8;
          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));
          if ((uVar8 & 0x20) != 0) {
            bVar14 = 0;
          }
          *q = *q | bVar14;
          if (uVar8 != 0) break;
          q = q + 1;
          (quantum_info->state).bits = 8;
          uVar8 = 8;
          if ((int)uVar7 < 1) goto LAB_0013c18c;
        }
        uVar8 = (quantum_info->state).bits;
      } while (0 < (int)uVar7);
LAB_0013c18c:
      pPVar16 = image->channel_map;
      uVar17 = quantum_info->depth;
      dVar2 = p[pPVar16[2].offset];
      if (NAN(dVar2)) {
        local_5c = 0;
      }
      else {
LAB_0013c1b8:
        local_5c = 0;
        if (0.0 < dVar2) {
          fVar1 = (float)CONCAT44(iStack_48,local_4c);
          if (iStack_48 < 0) {
            fVar1 = fVar1 + DAT_0029f714;
          }
          local_5c = -1;
          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;
          if (dVar2 < (double)DAT_0029f714) {
            dVar2 = dVar2 + (double)DAT_0029f124;
            if ((double)DAT_0029f134 <= dVar2) {
              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);
              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
            }
            else {
              local_5c = (longlong)ROUND(dVar2);
            }
          }
        }
      }
      if (uVar8 == 0) {
        (quantum_info->state).bits = 8;
        uVar8 = 8;
      }
    }
    if ((int)uVar17 < 1) {
      local_5c = 0;
      if (pPVar16[3].traits != UndefinedPixelTrait) goto LAB_0013c36e;
    }
    else {
      do {
        while( true ) {
          uVar19 = uVar8;
          if (uVar17 <= uVar8) {
            uVar19 = uVar17;
          }
          uVar7 = uVar17 - uVar19;
          uVar17 = 0;
          if (-1 < (int)uVar7) {
            uVar17 = uVar7;
          }
          if (uVar8 == 8) {
            *q = '\0';
          }
          uVar8 = uVar8 - uVar19;
          bVar14 = (byte)uVar17 & 0x1f;
          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;
          if ((uVar17 & 0x20) != 0) {
            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);
          }
          (quantum_info->state).bits = uVar8;
          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));
          if ((uVar8 & 0x20) != 0) {
            bVar14 = 0;
          }
          *q = *q | bVar14;
          if (uVar8 != 0) break;
          q = q + 1;
          (quantum_info->state).bits = 8;
          uVar8 = 8;
          if ((int)uVar7 < 1) goto LAB_0013c33c;
        }
        uVar8 = (quantum_info->state).bits;
      } while (0 < (int)uVar7);
LAB_0013c33c:
      local_5c = 0;
      pPVar16 = image->channel_map;
      uVar17 = quantum_info->depth;
      if (pPVar16[3].traits != UndefinedPixelTrait) {
LAB_0013c36e:
        if (p[pPVar16[3].offset] <= 0.0) {
          local_5c = 0;
        }
        else {
          fVar1 = (float)CONCAT44(iStack_48,local_4c);
          if (iStack_48 < 0) {
            fVar1 = fVar1 + DAT_0029f714;
          }
          local_5c = -1;
          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;
          if (dVar2 < (double)DAT_0029f714) {
            dVar2 = dVar2 + (double)DAT_0029f124;
            if ((double)DAT_0029f134 <= dVar2) {
              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);
              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
            }
            else {
              local_5c = (longlong)ROUND(dVar2);
            }
          }
        }
      }
      if (uVar8 == 0) {
        (quantum_info->state).bits = 8;
        uVar8 = 8;
      }
    }
    if ((int)uVar17 < 1) {
      local_5c = 0;
      uVar19 = uVar17;
      if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013ccd8;
    }
    else {
      do {
        while( true ) {
          uVar19 = uVar8;
          if (uVar17 <= uVar8) {
            uVar19 = uVar17;
          }
          uVar7 = uVar17 - uVar19;
          uVar17 = 0;
          if (-1 < (int)uVar7) {
            uVar17 = uVar7;
          }
          if (uVar8 == 8) {
            *q = '\0';
          }
          uVar8 = uVar8 - uVar19;
          bVar14 = (byte)uVar17 & 0x1f;
          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;
          if ((uVar17 & 0x20) != 0) {
            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);
          }
          (quantum_info->state).bits = uVar8;
          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));
          if ((uVar8 & 0x20) != 0) {
            bVar14 = 0;
          }
          *q = *q | bVar14;
          if (uVar8 != 0) break;
          q = q + 1;
          (quantum_info->state).bits = 8;
          uVar8 = 8;
          if ((int)uVar7 < 1) goto LAB_0013c4f4;
        }
        uVar8 = (quantum_info->state).bits;
      } while (0 < (int)uVar7);
LAB_0013c4f4:
      local_5c = 0;
      pPVar16 = image->channel_map;
      uVar17 = quantum_info->depth;
      if (pPVar16[4].traits == BlendPixelTrait) {
LAB_0013ccd8:
        if (DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0) {
          local_5c = 0;
        }
        else {
          fVar1 = (float)CONCAT44(iStack_48,local_4c);
          if (iStack_48 < 0) {
            fVar1 = fVar1 + DAT_0029f714;
          }
          local_5c = -1;
          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;
          if (fVar1 < DAT_0029f714) {
            fVar1 = fVar1 + DAT_0029f124;
            if (DAT_0029f134 <= fVar1) {
              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +
                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));
            }
            else {
              local_5c = (longlong)ROUND(fVar1);
            }
          }
        }
      }
      uVar19 = uVar17;
      if (uVar8 == 0) {
        (quantum_info->state).bits = 8;
      }
    }
    while (0 < (int)uVar19) {
      uVar8 = (quantum_info->state).bits;
      uVar7 = uVar8;
      if (uVar17 <= uVar8) {
        uVar7 = uVar17;
      }
      uVar19 = uVar17 - uVar7;
      uVar17 = 0;
      if (-1 < (int)uVar19) {
        uVar17 = uVar19;
      }
      if (uVar8 == 8) {
        *q = 0;
      }
      uVar8 = uVar8 - uVar7;
      (quantum_info->state).bits = uVar8;
      bVar14 = (byte)uVar17 & 0x1f;
      uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;
      if ((uVar17 & 0x20) != 0) {
        uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);
      }
      bVar14 = (byte)((~(-1 << ((byte)uVar7 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));
      if ((uVar8 & 0x20) != 0) {
        bVar14 = 0;
      }
      *q = *q | bVar14;
      if (uVar8 == 0) {
        q = q + 1;
        (quantum_info->state).bits = 8;
      }
    }
    local_40 = local_40 + 1;
    p = p + image->number_channels;
    q = q + quantum_info->pad;
    if (local_40 == (int)number_pixels) {
      return;
    }
    uVar17 = quantum_info->depth;
  } while( true );
}



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

void __regparm2
FUN_0013bd70(int param_1,uint *param_2,int param_3,undefined4 param_4,int param_5,byte *param_6,
            undefined4 param_7)

{
  float fVar1;
  double dVar2;
  longlong lVar3;
  float fVar4;
  double dVar5;
  undefined2 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  byte bVar10;
  byte bVar11;
  byte bVar12;
  int iVar13;
  byte bVar14;
  int iVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  byte local_8c;
  byte local_84;
  byte local_7c;
  byte local_74;
  byte local_6c;
  int local_64;
  undefined8 local_5c;
  int local_4c;
  int iStack_48;
  int local_40;
  byte local_34;
  
  dVar5 = DAT_002a8000;
  dVar2 = _DAT_0029f148;
  if (*(int *)(param_1 + 4) != 2) {
    ThrowMagickException
              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,
               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);
    return;
  }
  uVar16 = *param_2;
  if (uVar16 == 0x10) {
    if (param_2[2] == 1) {
      if (param_3 < 1) {
        return;
      }
      local_64 = 0;
      do {
        uVar6 = FUN_00136290((float)((longdouble)dVar2 *
                                    (longdouble)
                                    *(double *)
                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));
        bVar11 = (byte)((ushort)uVar6 >> 8);
        if (param_2[0x10] == 1) {
          *param_6 = (byte)uVar6;
          param_6[1] = bVar11;
        }
        else {
          *param_6 = bVar11;
          param_6[1] = (byte)uVar6;
        }
        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *
                                    (longdouble)
                                    *(double *)
                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));
        bVar11 = (byte)((ushort)uVar6 >> 8);
        if (param_2[0x10] == 1) {
          param_6[2] = (byte)uVar6;
          param_6[3] = bVar11;
        }
        else {
          param_6[2] = bVar11;
          param_6[3] = (byte)uVar6;
        }
        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *
                                    (longdouble)
                                    *(double *)
                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));
        bVar11 = (byte)((ushort)uVar6 >> 8);
        if (param_2[0x10] == 1) {
          param_6[4] = (byte)uVar6;
          param_6[5] = bVar11;
        }
        else {
          param_6[5] = (byte)uVar6;
          param_6[4] = bVar11;
        }
        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {
          fVar1 = 0.0;
        }
        else {
          fVar1 = (float)((longdouble)_DAT_0029f148 *
                         (longdouble)
                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));
        }
        uVar6 = FUN_00136290(fVar1);
        bVar11 = (byte)((ushort)uVar6 >> 8);
        if (param_2[0x10] == 1) {
          param_6[6] = (byte)uVar6;
          param_6[7] = bVar11;
        }
        else {
          param_6[6] = bVar11;
          param_6[7] = (byte)uVar6;
        }
        fVar1 = 0.0;
        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {
          fVar1 = (DAT_0029f710 -
                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *
                  (float)_DAT_0029f148;
        }
        uVar6 = FUN_00136290(fVar1);
        bVar11 = (byte)((ushort)uVar6 >> 8);
        if (param_2[0x10] == 1) {
          param_6[8] = (byte)uVar6;
          param_6[9] = bVar11;
        }
        else {
          param_6[8] = bVar11;
          param_6[9] = (byte)uVar6;
        }
        param_6 = param_6 + param_2[9] + 10;
        local_64 = local_64 + 1;
        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;
      } while (local_64 != param_3);
      return;
    }
    if (param_3 < 1) {
      return;
    }
    local_64 = 0;
    do {
      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);
      if (dVar2 <= 0.0) {
        bVar11 = 0;
        bVar12 = 0;
        bVar10 = 0;
        bVar14 = 0;
        if (param_2[0x10] != 1) goto LAB_0013caf0;
LAB_0013cf50:
        *param_6 = bVar11;
        param_6[1] = bVar10;
      }
      else {
        if ((double)DAT_0029f710 <= dVar2) {
          iVar13 = -1;
          bVar14 = 0xff;
        }
        else {
          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);
          bVar14 = (byte)((uint)iVar13 >> 8);
        }
        bVar12 = (byte)iVar13;
        bVar11 = bVar12;
        bVar10 = bVar14;
        if (param_2[0x10] == 1) goto LAB_0013cf50;
LAB_0013caf0:
        *param_6 = bVar14;
        param_6[1] = bVar12;
      }
      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);
      if (dVar2 <= 0.0) {
        bVar11 = 0;
        bVar10 = 0;
        bVar12 = 0;
        if (param_2[0x10] != 1) goto LAB_0013cb64;
LAB_0013cf28:
        param_6[2] = bVar11;
        param_6[3] = bVar12;
      }
      else {
        if ((double)DAT_0029f710 <= dVar2) {
          iVar13 = -1;
          bVar12 = 0xff;
        }
        else {
          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);
          bVar12 = (byte)((uint)iVar13 >> 8);
        }
        bVar10 = (byte)iVar13;
        bVar11 = bVar10;
        if (param_2[0x10] == 1) goto LAB_0013cf28;
LAB_0013cb64:
        param_6[3] = bVar10;
        param_6[2] = bVar12;
      }
      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);
      if (dVar2 <= 0.0) {
        bVar11 = 0;
        bVar10 = 0;
        bVar12 = 0;
        if (param_2[0x10] != 1) goto LAB_0013cbe0;
LAB_0013cf00:
        param_6[4] = bVar11;
        param_6[5] = bVar12;
      }
      else {
        if ((double)DAT_0029f710 <= dVar2) {
          iVar13 = -1;
          bVar12 = 0xff;
        }
        else {
          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);
          bVar12 = (byte)((uint)iVar13 >> 8);
        }
        bVar10 = (byte)iVar13;
        bVar11 = bVar10;
        if (param_2[0x10] == 1) goto LAB_0013cf00;
LAB_0013cbe0:
        param_6[4] = bVar12;
        param_6[5] = bVar10;
      }
      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||
         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),
         dVar2 <= 0.0)) {
        bVar12 = 0;
        bVar14 = 0;
        bVar11 = 0;
        bVar10 = 0;
        if (param_2[0x10] != 1) goto LAB_0013ca13;
LAB_0013cc16:
        bVar17 = 0;
        param_6[6] = bVar11;
        param_6[7] = bVar10;
        iVar15 = *(int *)(param_1 + 0x2a8);
        iVar13 = 0;
        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;
LAB_0013cc36:
        bVar17 = 0;
        iVar13 = 0;
        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);
        if (fVar1 <= 0.0) goto LAB_0013ca40;
        if (DAT_0029f710 <= fVar1) {
          iVar13 = -1;
          bVar17 = 0xff;
          goto LAB_0013ca40;
        }
        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);
        bVar17 = (byte)((uint)iVar13 >> 8);
        if (param_2[0x10] != 1) goto LAB_0013ca4a;
LAB_0013cca5:
        param_6[8] = (byte)iVar13;
        param_6[9] = bVar17;
      }
      else {
        if ((double)DAT_0029f710 <= dVar2) {
          iVar13 = -1;
          bVar14 = 0xff;
        }
        else {
          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);
          bVar14 = (byte)((uint)iVar13 >> 8);
        }
        bVar12 = (byte)iVar13;
        bVar11 = bVar12;
        bVar10 = bVar14;
        if (param_2[0x10] == 1) goto LAB_0013cc16;
LAB_0013ca13:
        bVar17 = 0;
        param_6[6] = bVar14;
        param_6[7] = bVar12;
        iVar15 = *(int *)(param_1 + 0x2a8);
        iVar13 = 0;
        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;
LAB_0013ca40:
        if (param_2[0x10] == 1) goto LAB_0013cca5;
LAB_0013ca4a:
        param_6[9] = (byte)iVar13;
        param_6[8] = bVar17;
      }
      local_64 = local_64 + 1;
      param_6 = param_6 + param_2[9] + 10;
      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;
      if (local_64 == param_3) {
        return;
      }
    } while( true );
  }
  if (uVar16 < 0x11) {
    if (uVar16 == 8) {
      if (param_3 < 1) {
        return;
      }
      iVar13 = 0;
      do {
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);
        bVar11 = 0;
        if (0.0 < dVar2) {
          dVar2 = dVar2 / (double)DAT_002a7ff0;
          bVar11 = 0xff;
          if (dVar2 < (double)DAT_002a7ff4) {
            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);
          }
        }
        *param_6 = bVar11;
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);
        bVar11 = 0;
        if (0.0 < dVar2) {
          dVar2 = dVar2 / (double)DAT_002a7ff0;
          bVar11 = 0xff;
          if (dVar2 < (double)DAT_002a7ff4) {
            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);
          }
        }
        param_6[1] = bVar11;
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);
        bVar11 = 0;
        if (0.0 < dVar2) {
          dVar2 = dVar2 / (double)DAT_002a7ff0;
          bVar11 = 0xff;
          if (dVar2 < (double)DAT_002a7ff4) {
            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);
          }
        }
        param_6[2] = bVar11;
        bVar11 = 0;
        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&
           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),
           0.0 < dVar2)) {
          dVar2 = dVar2 / (double)DAT_002a7ff0;
          bVar11 = 0xff;
          if (dVar2 < (double)DAT_002a7ff4) {
            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);
          }
        }
        param_6[3] = bVar11;
        bVar11 = 0;
        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&
           (fVar1 = DAT_0029f710 -
                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),
           0.0 < fVar1)) {
          fVar1 = fVar1 / DAT_002a7ff0;
          bVar11 = 0xff;
          if (fVar1 < DAT_002a7ff4) {
            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);
          }
        }
        param_6[4] = bVar11;
        iVar13 = iVar13 + 1;
        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;
        param_6 = param_6 + param_2[9] + 5;
      } while (iVar13 != param_3);
      return;
    }
LAB_0013d3f8:
    local_4c = 0;
    iStack_48 = 0;
    if (uVar16 == 0) goto LAB_0013be09;
  }
  else {
    if (uVar16 == 0x20) {
      if (param_2[2] == 1) {
        if (param_3 < 1) {
          return;
        }
        local_64 = 0;
        do {
          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *
                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);
          bVar11 = (byte)((uint)fVar1 >> 8);
          bVar12 = (byte)((uint)fVar1 >> 0x10);
          bVar10 = (byte)((uint)fVar1 >> 0x18);
          if (param_2[0x10] == 1) {
            *param_6 = SUB41(fVar1,0);
            param_6[1] = bVar11;
            param_6[2] = bVar12;
            param_6[3] = bVar10;
          }
          else {
            param_6[1] = bVar12;
            *param_6 = bVar10;
            param_6[2] = bVar11;
            param_6[3] = SUB41(fVar1,0);
          }
          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *
                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);
          bVar11 = (byte)((uint)fVar1 >> 8);
          bVar10 = (byte)((uint)fVar1 >> 0x18);
          bVar12 = (byte)((uint)fVar1 >> 0x10);
          if (param_2[0x10] == 1) {
            param_6[4] = SUB41(fVar1,0);
            param_6[5] = bVar11;
            param_6[6] = bVar12;
            param_6[7] = bVar10;
          }
          else {
            param_6[4] = bVar10;
            param_6[6] = bVar11;
            param_6[5] = bVar12;
            param_6[7] = SUB41(fVar1,0);
          }
          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *
                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);
          bVar11 = (byte)((uint)fVar1 >> 8);
          bVar10 = (byte)((uint)fVar1 >> 0x18);
          bVar12 = (byte)((uint)fVar1 >> 0x10);
          if (param_2[0x10] == 1) {
            param_6[8] = SUB41(fVar1,0);
            param_6[10] = bVar12;
            param_6[9] = bVar11;
            param_6[0xb] = bVar10;
          }
          else {
            param_6[10] = bVar11;
            param_6[8] = bVar10;
            param_6[9] = bVar12;
            param_6[0xb] = SUB41(fVar1,0);
          }
          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {
            fVar1 = 0.0;
          }
          else {
            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);
          }
          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);
          bVar11 = (byte)((uint)fVar1 >> 8);
          bVar12 = (byte)((uint)fVar1 >> 0x18);
          bVar10 = (byte)((uint)fVar1 >> 0x10);
          if (param_2[0x10] == 1) {
            param_6[0xc] = SUB41(fVar1,0);
            param_6[0xe] = bVar10;
            param_6[0xd] = bVar11;
            param_6[0xf] = bVar12;
          }
          else {
            param_6[0xe] = bVar11;
            param_6[0xc] = bVar12;
            param_6[0xd] = bVar10;
            param_6[0xf] = SUB41(fVar1,0);
          }
          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {
            fVar1 = DAT_0029f710 -
                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
          }
          else {
            fVar1 = 0.0;
          }
          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);
          bVar11 = (byte)((uint)fVar1 >> 8);
          bVar12 = (byte)((uint)fVar1 >> 0x18);
          bVar10 = (byte)((uint)fVar1 >> 0x10);
          if (param_2[0x10] == 1) {
            param_6[0x10] = SUB41(fVar1,0);
            param_6[0x12] = bVar10;
            param_6[0x11] = bVar11;
            param_6[0x13] = bVar12;
          }
          else {
            param_6[0x12] = bVar11;
            param_6[0x10] = bVar12;
            param_6[0x11] = bVar10;
            param_6[0x13] = SUB41(fVar1,0);
          }
          local_64 = local_64 + 1;
          param_6 = param_6 + param_2[9] + 0x14;
          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;
        } while (local_64 != param_3);
        return;
      }
      if (param_3 < 1) {
        return;
      }
      local_64 = 0;
      do {
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);
        if (dVar2 <= 0.0) {
          local_34 = 0;
          bVar12 = 0;
          bVar11 = 0;
          bVar10 = 0;
        }
        else {
          dVar2 = dVar2 * (double)DAT_002a7fec;
          if (dVar5 <= dVar2) {
            local_34 = 0xff;
            bVar12 = 0xff;
            bVar11 = 0xff;
            bVar10 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);
            local_34 = (byte)lVar3;
            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);
            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);
            bVar12 = (byte)((ulonglong)lVar3 >> 8);
          }
        }
        if (param_2[0x10] == 1) {
          param_6[1] = bVar12;
          *param_6 = local_34;
          param_6[2] = bVar11;
          param_6[3] = bVar10;
        }
        else {
          param_6[2] = bVar12;
          *param_6 = bVar10;
          param_6[3] = local_34;
          param_6[1] = bVar11;
        }
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);
        if (dVar2 <= 0.0) {
          local_34 = 0;
          bVar12 = 0;
          bVar11 = 0;
          bVar10 = 0;
        }
        else {
          dVar2 = dVar2 * (double)DAT_002a7fec;
          if (DAT_002a8000 <= dVar2) {
            local_34 = 0xff;
            bVar12 = 0xff;
            bVar11 = 0xff;
            bVar10 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);
            local_34 = (byte)lVar3;
            bVar12 = (byte)((ulonglong)lVar3 >> 8);
            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);
            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);
          }
        }
        if (param_2[0x10] == 1) {
          param_6[4] = local_34;
          param_6[6] = bVar11;
          param_6[5] = bVar12;
          param_6[7] = bVar10;
        }
        else {
          param_6[4] = bVar10;
          param_6[5] = bVar11;
          param_6[6] = bVar12;
          param_6[7] = local_34;
        }
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);
        if (dVar2 <= 0.0) {
          bVar11 = 0;
          bVar14 = 0;
          bVar12 = 0;
          bVar10 = 0;
        }
        else {
          dVar2 = dVar2 * (double)DAT_002a7fec;
          if (DAT_002a8000 <= dVar2) {
            bVar11 = 0xff;
            bVar14 = 0xff;
            bVar12 = 0xff;
            bVar10 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);
            bVar14 = (byte)((ulonglong)lVar3 >> 8);
            bVar11 = (byte)lVar3;
            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);
            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);
          }
        }
        if (param_2[0x10] == 1) {
          param_6[10] = bVar12;
          param_6[0xb] = bVar10;
          param_6[8] = bVar11;
          param_6[9] = bVar14;
        }
        else {
          param_6[9] = bVar12;
          param_6[10] = bVar14;
          param_6[8] = bVar10;
          param_6[0xb] = bVar11;
        }
        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||
           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),
           dVar2 <= 0.0)) {
          local_34 = 0;
          bVar12 = 0;
          bVar11 = 0;
          bVar10 = 0;
        }
        else {
          dVar2 = dVar2 * (double)DAT_002a7fec;
          if (DAT_002a8000 <= dVar2) {
            local_34 = 0xff;
            bVar12 = 0xff;
            bVar11 = 0xff;
            bVar10 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);
            local_34 = (byte)lVar3;
            bVar12 = (byte)((ulonglong)lVar3 >> 8);
            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);
            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);
          }
        }
        if (param_2[0x10] == 1) {
          param_6[0xc] = local_34;
          param_6[0xe] = bVar11;
          param_6[0xd] = bVar12;
          param_6[0xf] = bVar10;
        }
        else {
          param_6[0xc] = bVar10;
          param_6[0xd] = bVar11;
          param_6[0xe] = bVar12;
          param_6[0xf] = local_34;
        }
        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||
           (fVar1 = DAT_0029f710 -
                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),
           fVar1 <= 0.0)) {
          bVar11 = 0;
          bVar14 = 0;
          bVar10 = 0;
          bVar12 = 0;
        }
        else {
          fVar1 = fVar1 * DAT_002a7fec;
          if ((float)DAT_002a8000 <= fVar1) {
            bVar11 = 0xff;
            bVar14 = 0xff;
            bVar10 = 0xff;
            bVar12 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);
            bVar14 = (byte)((ulonglong)lVar3 >> 8);
            bVar11 = (byte)lVar3;
            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);
            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);
          }
        }
        if (param_2[0x10] == 1) {
          param_6[0x12] = bVar10;
          param_6[0x13] = bVar12;
          param_6[0x10] = bVar11;
          param_6[0x11] = bVar14;
        }
        else {
          param_6[0x11] = bVar10;
          param_6[0x12] = bVar14;
          param_6[0x10] = bVar12;
          param_6[0x13] = bVar11;
        }
        local_64 = local_64 + 1;
        param_6 = param_6 + param_2[9] + 0x14;
        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;
      } while (local_64 != param_3);
      return;
    }
    if (uVar16 != 0x40) goto LAB_0013d3f8;
    if (param_2[2] == 1) {
      if (param_3 < 1) {
        return;
      }
      local_64 = 0;
      do {
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *
                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);
        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);
        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);
        local_74 = (byte)((ulonglong)dVar2 >> 0x18);
        local_84 = (byte)((ulonglong)dVar2 >> 0x38);
        local_6c = (byte)((ulonglong)dVar2 >> 0x10);
        local_7c = (byte)((ulonglong)dVar2 >> 0x30);
        local_8c = (byte)((ulonglong)dVar2 >> 8);
        if (param_2[0x10] == 1) {
          *param_6 = SUB81(dVar2,0);
          param_6[4] = bVar10;
          param_6[5] = bVar11;
          param_6[1] = local_8c;
          param_6[2] = local_6c;
          param_6[3] = local_74;
          param_6[6] = local_7c;
          param_6[7] = local_84;
        }
        else {
          param_6[2] = bVar11;
          param_6[3] = bVar10;
          param_6[7] = SUB81(dVar2,0);
          param_6[4] = local_74;
          *param_6 = local_84;
          param_6[5] = local_6c;
          param_6[1] = local_7c;
          param_6[6] = local_8c;
        }
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *
                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);
        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);
        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);
        local_74 = (byte)((ulonglong)dVar2 >> 0x18);
        local_84 = (byte)((ulonglong)dVar2 >> 0x38);
        local_6c = (byte)((ulonglong)dVar2 >> 0x10);
        local_7c = (byte)((ulonglong)dVar2 >> 0x30);
        local_8c = (byte)((ulonglong)dVar2 >> 8);
        if (param_2[0x10] == 1) {
          param_6[8] = SUB81(dVar2,0);
          param_6[0xc] = bVar10;
          param_6[0xd] = bVar11;
          param_6[9] = local_8c;
          param_6[0xe] = local_7c;
          param_6[0xf] = local_84;
          param_6[10] = local_6c;
          param_6[0xb] = local_74;
        }
        else {
          param_6[0xb] = bVar10;
          param_6[10] = bVar11;
          param_6[0xf] = SUB81(dVar2,0);
          param_6[0xc] = local_74;
          param_6[8] = local_84;
          param_6[0xd] = local_6c;
          param_6[9] = local_7c;
          param_6[0xe] = local_8c;
        }
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *
                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);
        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);
        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);
        local_84 = (byte)((ulonglong)dVar2 >> 0x38);
        local_7c = (byte)((ulonglong)dVar2 >> 0x30);
        local_74 = (byte)((ulonglong)dVar2 >> 0x18);
        local_6c = (byte)((ulonglong)dVar2 >> 0x10);
        local_8c = (byte)((ulonglong)dVar2 >> 8);
        if (param_2[0x10] == 1) {
          param_6[0x14] = bVar11;
          param_6[0x10] = SUB81(dVar2,0);
          param_6[0x11] = local_8c;
          param_6[0x12] = local_6c;
          param_6[0x13] = local_74;
          param_6[0x15] = bVar10;
          param_6[0x16] = local_7c;
          param_6[0x17] = local_84;
        }
        else {
          param_6[0x13] = bVar11;
          param_6[0x17] = SUB81(dVar2,0);
          param_6[0x10] = local_84;
          param_6[0x11] = local_7c;
          param_6[0x12] = bVar10;
          param_6[0x14] = local_74;
          param_6[0x15] = local_6c;
          param_6[0x16] = local_8c;
        }
        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {
          dVar2 = 0.0;
        }
        else {
          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);
        }
        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);
        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);
        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);
        local_74 = (byte)((ulonglong)dVar2 >> 0x18);
        local_84 = (byte)((ulonglong)dVar2 >> 0x38);
        local_6c = (byte)((ulonglong)dVar2 >> 0x10);
        local_7c = (byte)((ulonglong)dVar2 >> 0x30);
        local_8c = (byte)((ulonglong)dVar2 >> 8);
        if (param_2[0x10] == 1) {
          param_6[0x1c] = bVar11;
          param_6[0x1d] = bVar10;
          param_6[0x18] = SUB81(dVar2,0);
          param_6[0x19] = local_8c;
          param_6[0x1e] = local_7c;
          param_6[0x1a] = local_6c;
          param_6[0x1b] = local_74;
          param_6[0x1f] = local_84;
        }
        else {
          param_6[0x1b] = bVar11;
          param_6[0x1f] = SUB81(dVar2,0);
          param_6[0x1c] = local_74;
          param_6[0x18] = local_84;
          param_6[0x1d] = local_6c;
          param_6[0x19] = local_7c;
          param_6[0x1a] = bVar10;
          param_6[0x1e] = local_8c;
        }
        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {
          dVar2 = (double)DAT_0029f710 -
                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
        }
        else {
          dVar2 = 0.0;
        }
        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);
        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);
        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);
        local_84 = (byte)((ulonglong)dVar2 >> 0x38);
        local_7c = (byte)((ulonglong)dVar2 >> 0x30);
        local_74 = (byte)((ulonglong)dVar2 >> 0x18);
        local_6c = (byte)((ulonglong)dVar2 >> 0x10);
        local_8c = (byte)((ulonglong)dVar2 >> 8);
        if (param_2[0x10] == 1) {
          param_6[0x20] = SUB81(dVar2,0);
          param_6[0x24] = bVar11;
          param_6[0x21] = local_8c;
          param_6[0x22] = local_6c;
          param_6[0x23] = local_74;
          param_6[0x25] = bVar10;
          param_6[0x26] = local_7c;
          param_6[0x27] = local_84;
        }
        else {
          param_6[0x23] = bVar11;
          param_6[0x27] = SUB81(dVar2,0);
          param_6[0x20] = local_84;
          param_6[0x21] = local_7c;
          param_6[0x22] = bVar10;
          param_6[0x24] = local_74;
          param_6[0x25] = local_6c;
          param_6[0x26] = local_8c;
        }
        local_64 = local_64 + 1;
        param_6 = param_6 + param_2[9] + 0x28;
        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;
      } while (local_64 != param_3);
      return;
    }
  }
  uVar9 = 0;
  if (uVar16 < 0x41) {
    uVar9 = uVar16;
  }
  bVar10 = (byte)(uVar9 - 1);
  bVar11 = bVar10 & 0x1f;
  uVar7 = 2 << (bVar10 & 0x1f);
  uVar8 = uVar7;
  uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11;
  if ((uVar9 - 1 & 0x20) != 0) {
    uVar8 = 0;
    uVar18 = uVar7;
  }
  local_4c = uVar8 - 1;
  iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0);
LAB_0013be09:
  if (param_3 < 1) {
    return;
  }
  local_40 = 0;
  do {
    local_5c = 0;
    iVar13 = *(int *)(param_1 + 0x2a8);
    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);
    if (0.0 < dVar2) {
      fVar1 = (float)CONCAT44(iStack_48,local_4c);
      if (iStack_48 < 0) {
        fVar1 = fVar1 + DAT_0029f714;
      }
      local_5c = -1;
      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;
      if (dVar2 < (double)DAT_0029f714) {
        dVar2 = dVar2 + (double)DAT_0029f124;
        if ((double)DAT_0029f134 <= dVar2) {
          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);
          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
        }
        else {
          local_5c = (longlong)ROUND(dVar2);
        }
      }
    }
    uVar9 = param_2[0x14];
    if (uVar9 == 0) {
      param_2[0x14] = 8;
      uVar9 = 8;
    }
    if ((int)uVar16 < 1) {
      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);
      if (!NAN(dVar2)) goto LAB_0013bffe;
      local_5c = 0;
    }
    else {
      do {
        while( true ) {
          uVar18 = uVar9;
          if (uVar16 <= uVar9) {
            uVar18 = uVar16;
          }
          uVar8 = uVar16 - uVar18;
          uVar16 = 0;
          if (-1 < (int)uVar8) {
            uVar16 = uVar8;
          }
          if (uVar9 == 8) {
            *param_6 = 0;
          }
          uVar9 = uVar9 - uVar18;
          bVar11 = (byte)uVar16 & 0x1f;
          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;
          if ((uVar16 & 0x20) != 0) {
            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);
          }
          param_2[0x14] = uVar9;
          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));
          if ((uVar9 & 0x20) != 0) {
            bVar11 = 0;
          }
          *param_6 = *param_6 | bVar11;
          if (uVar9 != 0) break;
          param_6 = param_6 + 1;
          param_2[0x14] = 8;
          uVar9 = 8;
          if ((int)uVar8 < 1) goto LAB_0013bfd2;
        }
        uVar9 = param_2[0x14];
      } while (0 < (int)uVar8);
LAB_0013bfd2:
      iVar13 = *(int *)(param_1 + 0x2a8);
      uVar16 = *param_2;
      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);
      if (NAN(dVar2)) {
        local_5c = 0;
      }
      else {
LAB_0013bffe:
        local_5c = 0;
        if (0.0 < dVar2) {
          fVar1 = (float)CONCAT44(iStack_48,local_4c);
          if (iStack_48 < 0) {
            fVar1 = fVar1 + DAT_0029f714;
          }
          local_5c = -1;
          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;
          if (dVar2 < (double)DAT_0029f714) {
            dVar2 = dVar2 + (double)DAT_0029f124;
            if ((double)DAT_0029f134 <= dVar2) {
              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);
              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
            }
            else {
              local_5c = (longlong)ROUND(dVar2);
            }
          }
        }
      }
      if (uVar9 == 0) {
        param_2[0x14] = 8;
        uVar9 = 8;
      }
    }
    if ((int)uVar16 < 1) {
      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);
      if (!NAN(dVar2)) goto LAB_0013c1b8;
      local_5c = 0;
    }
    else {
      do {
        while( true ) {
          uVar18 = uVar9;
          if (uVar16 <= uVar9) {
            uVar18 = uVar16;
          }
          uVar8 = uVar16 - uVar18;
          uVar16 = 0;
          if (-1 < (int)uVar8) {
            uVar16 = uVar8;
          }
          if (uVar9 == 8) {
            *param_6 = 0;
          }
          uVar9 = uVar9 - uVar18;
          bVar11 = (byte)uVar16 & 0x1f;
          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;
          if ((uVar16 & 0x20) != 0) {
            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);
          }
          param_2[0x14] = uVar9;
          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));
          if ((uVar9 & 0x20) != 0) {
            bVar11 = 0;
          }
          *param_6 = *param_6 | bVar11;
          if (uVar9 != 0) break;
          param_6 = param_6 + 1;
          param_2[0x14] = 8;
          uVar9 = 8;
          if ((int)uVar8 < 1) goto LAB_0013c18c;
        }
        uVar9 = param_2[0x14];
      } while (0 < (int)uVar8);
LAB_0013c18c:
      iVar13 = *(int *)(param_1 + 0x2a8);
      uVar16 = *param_2;
      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);
      if (NAN(dVar2)) {
        local_5c = 0;
      }
      else {
LAB_0013c1b8:
        local_5c = 0;
        if (0.0 < dVar2) {
          fVar1 = (float)CONCAT44(iStack_48,local_4c);
          if (iStack_48 < 0) {
            fVar1 = fVar1 + DAT_0029f714;
          }
          local_5c = -1;
          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;
          if (dVar2 < (double)DAT_0029f714) {
            dVar2 = dVar2 + (double)DAT_0029f124;
            if ((double)DAT_0029f134 <= dVar2) {
              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);
              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
            }
            else {
              local_5c = (longlong)ROUND(dVar2);
            }
          }
        }
      }
      if (uVar9 == 0) {
        param_2[0x14] = 8;
        uVar9 = 8;
      }
    }
    if ((int)uVar16 < 1) {
      local_5c = 0;
      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;
    }
    else {
      do {
        while( true ) {
          uVar18 = uVar9;
          if (uVar16 <= uVar9) {
            uVar18 = uVar16;
          }
          uVar8 = uVar16 - uVar18;
          uVar16 = 0;
          if (-1 < (int)uVar8) {
            uVar16 = uVar8;
          }
          if (uVar9 == 8) {
            *param_6 = 0;
          }
          uVar9 = uVar9 - uVar18;
          bVar11 = (byte)uVar16 & 0x1f;
          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;
          if ((uVar16 & 0x20) != 0) {
            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);
          }
          param_2[0x14] = uVar9;
          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));
          if ((uVar9 & 0x20) != 0) {
            bVar11 = 0;
          }
          *param_6 = *param_6 | bVar11;
          if (uVar9 != 0) break;
          param_6 = param_6 + 1;
          param_2[0x14] = 8;
          uVar9 = 8;
          if ((int)uVar8 < 1) goto LAB_0013c33c;
        }
        uVar9 = param_2[0x14];
      } while (0 < (int)uVar8);
LAB_0013c33c:
      local_5c = 0;
      iVar13 = *(int *)(param_1 + 0x2a8);
      uVar16 = *param_2;
      if (*(int *)(iVar13 + 0x28) != 0) {
LAB_0013c36e:
        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);
        if (dVar2 <= 0.0) {
          local_5c = 0;
        }
        else {
          fVar1 = (float)CONCAT44(iStack_48,local_4c);
          if (iStack_48 < 0) {
            fVar1 = fVar1 + DAT_0029f714;
          }
          local_5c = -1;
          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;
          if (dVar2 < (double)DAT_0029f714) {
            dVar2 = dVar2 + (double)DAT_0029f124;
            if ((double)DAT_0029f134 <= dVar2) {
              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);
              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
            }
            else {
              local_5c = (longlong)ROUND(dVar2);
            }
          }
        }
      }
      if (uVar9 == 0) {
        param_2[0x14] = 8;
        uVar9 = 8;
      }
    }
    if ((int)uVar16 < 1) {
      local_5c = 0;
      uVar18 = uVar16;
      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;
    }
    else {
      do {
        while( true ) {
          uVar18 = uVar9;
          if (uVar16 <= uVar9) {
            uVar18 = uVar16;
          }
          uVar8 = uVar16 - uVar18;
          uVar16 = 0;
          if (-1 < (int)uVar8) {
            uVar16 = uVar8;
          }
          if (uVar9 == 8) {
            *param_6 = 0;
          }
          uVar9 = uVar9 - uVar18;
          bVar11 = (byte)uVar16 & 0x1f;
          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;
          if ((uVar16 & 0x20) != 0) {
            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);
          }
          param_2[0x14] = uVar9;
          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));
          if ((uVar9 & 0x20) != 0) {
            bVar11 = 0;
          }
          *param_6 = *param_6 | bVar11;
          if (uVar9 != 0) break;
          param_6 = param_6 + 1;
          param_2[0x14] = 8;
          uVar9 = 8;
          if ((int)uVar8 < 1) goto LAB_0013c4f4;
        }
        uVar9 = param_2[0x14];
      } while (0 < (int)uVar8);
LAB_0013c4f4:
      local_5c = 0;
      iVar13 = *(int *)(param_1 + 0x2a8);
      uVar16 = *param_2;
      if (*(int *)(iVar13 + 0x34) == 4) {
LAB_0013ccd8:
        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);
        if (fVar1 <= 0.0) {
          local_5c = 0;
        }
        else {
          fVar4 = (float)CONCAT44(iStack_48,local_4c);
          if (iStack_48 < 0) {
            fVar4 = fVar4 + DAT_0029f714;
          }
          local_5c = -1;
          fVar1 = (fVar4 * fVar1) / DAT_0029f710;
          if (fVar1 < DAT_0029f714) {
            fVar1 = fVar1 + DAT_0029f124;
            if (DAT_0029f134 <= fVar1) {
              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +
                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));
            }
            else {
              local_5c = (longlong)ROUND(fVar1);
            }
          }
        }
      }
      uVar18 = uVar16;
      if (uVar9 == 0) {
        param_2[0x14] = 8;
      }
    }
    while (0 < (int)uVar18) {
      uVar9 = param_2[0x14];
      uVar8 = uVar9;
      if (uVar16 <= uVar9) {
        uVar8 = uVar16;
      }
      uVar18 = uVar16 - uVar8;
      uVar16 = 0;
      if (-1 < (int)uVar18) {
        uVar16 = uVar18;
      }
      if (uVar9 == 8) {
        *param_6 = 0;
      }
      uVar9 = uVar9 - uVar8;
      param_2[0x14] = uVar9;
      bVar11 = (byte)uVar16 & 0x1f;
      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;
      if ((uVar16 & 0x20) != 0) {
        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);
      }
      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));
      if ((uVar9 & 0x20) != 0) {
        bVar11 = 0;
      }
      *param_6 = *param_6 | bVar11;
      if (uVar9 == 0) {
        param_6 = param_6 + 1;
        param_2[0x14] = 8;
      }
    }
    local_40 = local_40 + 1;
    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;
    param_6 = param_6 + param_2[9];
    if (local_40 == param_3) {
      return;
    }
    uVar16 = *param_2;
  } while( true );
}


PUSH EBP
MOV EBP,EDX
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00038830
ADD EBX,0x29d285
SUB ESP,0x7c
CMP dword ptr [EAX + 0x4],0x2
MOV EDX,dword ptr [ESP + 0x90]
MOV dword ptr [ESP + 0x3c],EAX
MOV ESI,dword ptr [ESP + 0x9c]
MOV dword ptr [ESP + 0x48],EDX
MOV dword ptr [ESP + 0x2c],EBX
JNZ 0x0013c620
MOV EBX,dword ptr [EBP]
CMP EBX,0x10
JZ 0x0013c980
JBE 0x0013cfa0
CMP EBX,0x20
JZ 0x0013c670
CMP EBX,0x40
JNZ 0x0013d3f8
CMP dword ptr [EBP + 0x8],0x1
JZ 0x0013da6f
CMP EBX,0x40
MOV ECX,0x40
MOV EAX,0x2
CMOVBE ECX,EBX
XOR EDX,EDX
XOR EDI,EDI
SUB ECX,0x1
SHLD EDX,EAX,CL
SHL EAX,CL
TEST CL,0x20
CMOVNZ EDX,EAX
CMOVNZ EAX,EDI
ADD EAX,-0x1
ADC EDX,-0x1
MOV dword ptr [ESP + 0x40],EAX
MOV dword ptr [ESP + 0x44],EDX
MOV EDI,dword ptr [ESP + 0x48]
TEST EDI,EDI
JLE 0x0013c662
MOV dword ptr [ESP + 0x28],EBP
MOV EBP,ESI
MOV ESI,EBX
MOV dword ptr [ESP + 0x4c],0x0
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x30],0x0
MOV EDX,dword ptr [ESP + 0x98]
MOV dword ptr [ESP + 0x34],0x0
MOV EBX,dword ptr [EAX + 0x2a8]
MOV EAX,dword ptr [EBX + 0x8]
FLD qword ptr [EDX + EAX*0x8]
FUCOMI ST0,ST0
JP 0x0013bee0
FLDZ
MOV EAX,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
JNC 0x0013bee8
MOV ECX,dword ptr [ESP + 0x44]
FILD qword ptr [ESP + 0x40]
TEST ECX,ECX
JNS 0x0013be77
FADD dword ptr [EAX + 0xffec6714]
MOV EAX,dword ptr [ESP + 0x2c]
FSTP qword ptr [ESP + 0x60]
FLD qword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x30],0xffffffff
FMULP
MOV dword ptr [ESP + 0x34],0xffffffff
FDIV dword ptr [EAX + 0xffec6710]
FLD dword ptr [EAX + 0xffec6714]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013bef0
FADD dword ptr [EAX + 0xffec6124]
FLD dword ptr [EAX + 0xffec6134]
FXCH
FUCOMI ST0,ST1
JNC 0x0013ce60
FSTP ST1
FNSTCW word ptr [ESP + 0x6a]
MOVZX EAX,word ptr [ESP + 0x6a]
OR AH,0xc
MOV word ptr [ESP + 0x68],AX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x30]
FLDCW word ptr [ESP + 0x6a]
JMP 0x0013bef8
FSTP ST0
JMP 0x0013bef8
FSTP ST0
JMP 0x0013bef8
FSTP ST0
LEA ESI,[ESI]
MOV EDX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EDX + 0x50]
TEST EAX,EAX
JNZ 0x0013bf0f
MOV dword ptr [EDX + 0x50],0x8
MOV EAX,0x8
TEST ESI,ESI
JLE 0x0013d2b0
MOV dword ptr [ESP + 0x9c],EBP
JMP 0x0013bf33
MOV EBX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EBX + 0x50]
MOV EBX,dword ptr [ESP + 0x38]
TEST EBX,EBX
JLE 0x0013bfd2
CMP ESI,EAX
MOV ECX,EAX
MOV EDI,ESI
CMOVBE ECX,ESI
MOV ESI,0x0
SUB EDI,ECX
CMOVNS ESI,EDI
MOV dword ptr [ESP + 0x38],EDI
CMP EAX,0x8
JNZ 0x0013bf59
MOV EDI,dword ptr [ESP + 0x9c]
MOV byte ptr [EDI],0x0
MOV EBP,dword ptr [ESP + 0x34]
MOV EDX,0xffffffff
SUB EAX,ECX
MOV dword ptr [ESP + 0x4],0x0
MOV EDI,dword ptr [ESP + 0x30]
SHL EDX,CL
MOV ECX,ESI
NOT EDX
MOV EBX,dword ptr [ESP + 0x28]
SHRD EDI,EBP,CL
SHR EBP,CL
TEST CL,0x20
CMOVNZ EDI,EBP
MOV ECX,EAX
MOV dword ptr [EBX + 0x50],EAX
AND EDX,EDI
MOV dword ptr [ESP],EDX
MOV EDI,dword ptr [ESP]
XOR EDX,EDX
SHL EDI,CL
TEST AL,0x20
CMOVNZ EDI,EDX
MOV ECX,EDI
MOV EDI,dword ptr [ESP + 0x9c]
OR byte ptr [EDI],CL
TEST EAX,EAX
JNZ 0x0013bf20
MOV EBX,dword ptr [ESP + 0x38]
MOV EAX,dword ptr [ESP + 0x28]
ADD dword ptr [ESP + 0x9c],0x1
TEST EBX,EBX
MOV dword ptr [EAX + 0x50],0x8
MOV EAX,0x8
JG 0x0013bf33
MOV EBX,dword ptr [ESP + 0x3c]
MOV EDI,dword ptr [ESP + 0x98]
MOV ESI,dword ptr [ESP + 0x28]
MOV EBP,dword ptr [ESP + 0x9c]
MOV EBX,dword ptr [EBX + 0x2a8]
MOV ESI,dword ptr [ESI]
MOV EDX,dword ptr [EBX + 0x14]
FLD qword ptr [EDI + EDX*0x8]
FUCOMI ST0,ST0
JP 0x0013d430
FLDZ
MOV dword ptr [ESP + 0x30],0x0
MOV EDX,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
MOV dword ptr [ESP + 0x34],0x0
JNC 0x0013c0a0
MOV ECX,dword ptr [ESP + 0x44]
FILD qword ptr [ESP + 0x40]
TEST ECX,ECX
JNS 0x0013c02e
FADD dword ptr [EDX + 0xffec6714]
MOV EDI,dword ptr [ESP + 0x2c]
FSTP qword ptr [ESP + 0x60]
FLD qword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x30],0xffffffff
FMULP
MOV dword ptr [ESP + 0x34],0xffffffff
FDIV dword ptr [EDI + 0xffec6710]
FLD dword ptr [EDI + 0xffec6714]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013c0a8
FADD dword ptr [EDI + 0xffec6124]
FLD dword ptr [EDI + 0xffec6134]
FXCH
FUCOMI ST0,ST1
JNC 0x0013cea8
FSTP ST1
FNSTCW word ptr [ESP + 0x6a]
MOVZX EDX,word ptr [ESP + 0x6a]
OR DH,0xc
MOV word ptr [ESP + 0x68],DX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x30]
FLDCW word ptr [ESP + 0x6a]
JMP 0x0013c0b0
FSTP ST0
JMP 0x0013c0b0
FSTP ST0
LEA ESI,[ESI]
TEST EAX,EAX
JNZ 0x0013c0c4
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [EAX + 0x50],0x8
MOV EAX,0x8
TEST ESI,ESI
JLE 0x0013d280
MOV dword ptr [ESP + 0x9c],EBP
JMP 0x0013c0eb
MOV EBX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EBX + 0x50]
MOV EBX,dword ptr [ESP + 0x38]
TEST EBX,EBX
JLE 0x0013c18c
CMP ESI,EAX
MOV ECX,EAX
MOV EDI,ESI
CMOVBE ECX,ESI
MOV ESI,0x0
SUB EDI,ECX
CMOVNS ESI,EDI
MOV dword ptr [ESP + 0x38],EDI
CMP EAX,0x8
JNZ 0x0013c111
MOV EBX,dword ptr [ESP + 0x9c]
MOV byte ptr [EBX],0x0
MOV EBP,dword ptr [ESP + 0x34]
MOV EDX,0xffffffff
SUB EAX,ECX
MOV dword ptr [ESP + 0xc],0x0
MOV EDI,dword ptr [ESP + 0x30]
SHL EDX,CL
MOV ECX,ESI
NOT EDX
MOV EBX,dword ptr [ESP + 0x28]
SHRD EDI,EBP,CL
SHR EBP,CL
TEST CL,0x20
CMOVNZ EDI,EBP
MOV ECX,EAX
MOV dword ptr [EBX + 0x50],EAX
AND EDX,EDI
MOV dword ptr [ESP + 0x8],EDX
MOV EDI,dword ptr [ESP + 0x8]
XOR EDX,EDX
SHL EDI,CL
TEST AL,0x20
CMOVNZ EDI,EDX
MOV EDX,dword ptr [ESP + 0x9c]
MOV ECX,EDI
OR byte ptr [EDX],CL
TEST EAX,EAX
JNZ 0x0013c0d8
MOV EBX,dword ptr [ESP + 0x38]
MOV EAX,dword ptr [ESP + 0x28]
ADD dword ptr [ESP + 0x9c],0x1
TEST EBX,EBX
MOV dword ptr [EAX + 0x50],0x8
MOV EAX,0x8
JG 0x0013c0eb
MOV EBX,dword ptr [ESP + 0x3c]
MOV EDX,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [ESP + 0x98]
MOV EBP,dword ptr [ESP + 0x9c]
MOV EBX,dword ptr [EBX + 0x2a8]
MOV ESI,dword ptr [EDX]
MOV EDX,dword ptr [EBX + 0x20]
FLD qword ptr [EDI + EDX*0x8]
FUCOMI ST0,ST0
JP 0x0013d418
FLDZ
MOV dword ptr [ESP + 0x30],0x0
MOV EDX,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
MOV dword ptr [ESP + 0x34],0x0
JNC 0x0013c250
MOV ECX,dword ptr [ESP + 0x44]
FILD qword ptr [ESP + 0x40]
TEST ECX,ECX
JNS 0x0013c1e4
FADD dword ptr [EDX + 0xffec6714]
MOV EDX,dword ptr [ESP + 0x2c]
FSTP qword ptr [ESP + 0x60]
FLD qword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x30],0xffffffff
FMULP
MOV dword ptr [ESP + 0x34],0xffffffff
FDIV dword ptr [EDX + 0xffec6710]
FLD dword ptr [EDX + 0xffec6714]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013c258
FADD dword ptr [EDX + 0xffec6124]
FLD dword ptr [EDX + 0xffec6134]
FXCH
FUCOMI ST0,ST1
JNC 0x0013cdd0
FSTP ST1
FNSTCW word ptr [ESP + 0x6a]
MOVZX EDX,word ptr [ESP + 0x6a]
OR DH,0xc
MOV word ptr [ESP + 0x68],DX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x30]
FLDCW word ptr [ESP + 0x6a]
JMP 0x0013c260
FSTP ST0
JMP 0x0013c260
FSTP ST0
LEA ESI,[ESI]
TEST EAX,EAX
JNZ 0x0013c274
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [EAX + 0x50],0x8
MOV EAX,0x8
TEST ESI,ESI
JLE 0x0013d2e0
MOV dword ptr [ESP + 0x9c],EBP
JMP 0x0013c29b
MOV EBP,dword ptr [ESP + 0x38]
MOV EBX,dword ptr [ESP + 0x28]
TEST EBP,EBP
MOV EAX,dword ptr [EBX + 0x50]
JLE 0x0013c33c
CMP ESI,EAX
MOV ECX,EAX
MOV EDI,ESI
CMOVBE ECX,ESI
MOV ESI,0x0
SUB EDI,ECX
CMOVNS ESI,EDI
MOV dword ptr [ESP + 0x38],EDI
CMP EAX,0x8
JNZ 0x0013c2c1
MOV EDX,dword ptr [ESP + 0x9c]
MOV byte ptr [EDX],0x0
MOV EBP,dword ptr [ESP + 0x34]
MOV EDX,0xffffffff
SUB EAX,ECX
MOV dword ptr [ESP + 0x14],0x0
MOV EDI,dword ptr [ESP + 0x30]
SHL EDX,CL
MOV ECX,ESI
NOT EDX
MOV EBX,dword ptr [ESP + 0x28]
SHRD EDI,EBP,CL
SHR EBP,CL
TEST CL,0x20
CMOVNZ EDI,EBP
MOV ECX,EAX
MOV dword ptr [EBX + 0x50],EAX
AND EDX,EDI
MOV dword ptr [ESP + 0x10],EDX
MOV EDI,dword ptr [ESP + 0x10]
XOR EDX,EDX
SHL EDI,CL
TEST AL,0x20
CMOVNZ EDI,EDX
MOV ECX,EDI
MOV EDI,dword ptr [ESP + 0x9c]
OR byte ptr [EDI],CL
TEST EAX,EAX
JNZ 0x0013c288
MOV EBP,dword ptr [ESP + 0x38]
MOV EAX,dword ptr [ESP + 0x28]
ADD dword ptr [ESP + 0x9c],0x1
TEST EBP,EBP
MOV dword ptr [EAX + 0x50],0x8
MOV EAX,0x8
JG 0x0013c29b
MOV EBX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x30],0x0
MOV ESI,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x34],0x0
MOV EBP,dword ptr [ESP + 0x9c]
MOV EBX,dword ptr [EBX + 0x2a8]
MOV ESI,dword ptr [ESI]
MOV EDI,dword ptr [EBX + 0x28]
TEST EDI,EDI
JZ 0x0013c418
MOV EDX,dword ptr [EBX + 0x2c]
MOV EDI,dword ptr [ESP + 0x98]
FLD qword ptr [EDI + EDX*0x8]
FUCOMI ST0,ST0
JP 0x0013d4e8
FLDZ
MOV EDX,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
JNC 0x0013d4ec
MOV ECX,dword ptr [ESP + 0x44]
FILD qword ptr [ESP + 0x40]
TEST ECX,ECX
JNS 0x0013c3a3
FADD dword ptr [EDX + 0xffec6714]
MOV EDI,dword ptr [ESP + 0x2c]
FSTP qword ptr [ESP + 0x60]
FLD qword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x30],0xffffffff
FMULP
MOV dword ptr [ESP + 0x34],0xffffffff
FDIV dword ptr [EDI + 0xffec6710]
FLD dword ptr [EDI + 0xffec6714]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013c410
FADD dword ptr [EDI + 0xffec6124]
FLD dword ptr [EDI + 0xffec6134]
FXCH
FUCOMI ST0,ST1
JNC 0x0013cd88
FSTP ST1
FNSTCW word ptr [ESP + 0x6a]
MOVZX EDX,word ptr [ESP + 0x6a]
OR DH,0xc
MOV word ptr [ESP + 0x68],DX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x30]
FLDCW word ptr [ESP + 0x6a]
JMP 0x0013c418
FSTP ST0
LEA ESI,[ESI]
TEST EAX,EAX
JNZ 0x0013c42c
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [EAX + 0x50],0x8
MOV EAX,0x8
TEST ESI,ESI
JLE 0x0013ccb8
MOV dword ptr [ESP + 0x9c],EBP
JMP 0x0013c453
MOV ECX,dword ptr [ESP + 0x38]
MOV EBX,dword ptr [ESP + 0x28]
TEST ECX,ECX
MOV EAX,dword ptr [EBX + 0x50]
JLE 0x0013c4f4
CMP ESI,EAX
MOV ECX,EAX
MOV EDI,ESI
CMOVBE ECX,ESI
MOV ESI,0x0
SUB EDI,ECX
CMOVNS ESI,EDI
MOV dword ptr [ESP + 0x38],EDI
CMP EAX,0x8
JNZ 0x0013c479
MOV EDX,dword ptr [ESP + 0x9c]
MOV byte ptr [EDX],0x0
MOV EBP,dword ptr [ESP + 0x34]
MOV EDX,0xffffffff
SUB EAX,ECX
MOV dword ptr [ESP + 0x1c],0x0
MOV EDI,dword ptr [ESP + 0x30]
SHL EDX,CL
MOV ECX,ESI
NOT EDX
MOV EBX,dword ptr [ESP + 0x28]
SHRD EDI,EBP,CL
SHR EBP,CL
TEST CL,0x20
CMOVNZ EDI,EBP
MOV ECX,EAX
MOV dword ptr [EBX + 0x50],EAX
AND EDX,EDI
MOV dword ptr [ESP + 0x18],EDX
MOV EDI,dword ptr [ESP + 0x18]
XOR EDX,EDX
SHL EDI,CL
TEST AL,0x20
CMOVNZ EDI,EDX
MOV ECX,EDI
MOV EDI,dword ptr [ESP + 0x9c]
OR byte ptr [EDI],CL
TEST EAX,EAX
JNZ 0x0013c440
MOV ECX,dword ptr [ESP + 0x38]
MOV EAX,dword ptr [ESP + 0x28]
ADD dword ptr [ESP + 0x9c],0x1
TEST ECX,ECX
MOV dword ptr [EAX + 0x50],0x8
MOV EAX,0x8
JG 0x0013c453
MOV EBX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x30],0x0
MOV EDX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x34],0x0
MOV EBP,dword ptr [ESP + 0x9c]
MOV EBX,dword ptr [EBX + 0x2a8]
MOV ESI,dword ptr [EDX]
CMP dword ptr [EBX + 0x34],0x4
JZ 0x0013ccd8
JMP 0x0013c538
FSTP ST0
LEA ESI,[ESI]
TEST EAX,EAX
JNZ 0x0013c547
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [EAX + 0x50],0x8
TEST ESI,ESI
JLE 0x0013c5e7
MOV EDI,ESI
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EAX + 0x50]
CMP EDI,EAX
MOV ECX,EAX
CMOVBE ECX,EDI
SUB EDI,ECX
MOV EDX,EDI
MOV EDI,0x0
CMOVNS EDI,EDX
CMP EAX,0x8
JNZ 0x0013c57b
MOV byte ptr [EBP],0x0
MOV EBX,dword ptr [ESP + 0x28]
MOV ESI,0xffffffff
SUB EAX,ECX
SHL ESI,CL
MOV ECX,EDI
NOT ESI
MOV dword ptr [ESP + 0x38],ESI
MOV ESI,dword ptr [ESP + 0x34]
MOV dword ptr [EBX + 0x50],EAX
MOV EBX,dword ptr [ESP + 0x30]
SHRD EBX,ESI,CL
SHR ESI,CL
TEST CL,0x20
JZ 0x0013c5a7
MOV EBX,ESI
MOV ESI,dword ptr [ESP + 0x38]
MOV ECX,EBX
MOV dword ptr [ESP + 0x24],0x0
AND ESI,ECX
MOV ECX,EAX
MOV dword ptr [ESP + 0x20],ESI
MOV EBX,dword ptr [ESP + 0x20]
SHL EBX,CL
TEST CL,0x20
JZ 0x0013c5ca
XOR EBX,EBX
OR byte ptr [EBP],BL
TEST EAX,EAX
JNZ 0x0013c5df
MOV EBX,dword ptr [ESP + 0x28]
ADD EBP,0x1
MOV dword ptr [EBX + 0x50],0x8
TEST EDX,EDX
JG 0x0013c558
MOV EAX,dword ptr [ESP + 0x3c]
MOV EBX,dword ptr [ESP + 0x98]
ADD dword ptr [ESP + 0x4c],0x1
MOV EAX,dword ptr [EAX + 0x298]
LEA EAX,[EBX + EAX*0x8]
MOV EBX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x98],EAX
MOV EAX,dword ptr [ESP + 0x4c]
ADD EBP,dword ptr [EBX + 0x24]
CMP EAX,dword ptr [ESP + 0x48]
JZ 0x0013c662
MOV ESI,dword ptr [EBX]
JMP 0x0013be28
ADD EAX,0x318
PUSH EAX
LEA EAX,[EBX + 0xffec8a40]
PUSH EAX
LEA EAX,[EBX + 0xffedae0f]
PUSH EAX
LEA EAX,[EBX + 0xffeebb80]
PUSH 0x1d1
PUSH 0x6f7
PUSH EAX
LEA EAX,[EBX + 0xffeeb6d8]
PUSH EAX
PUSH dword ptr [ESP + 0xbc]
CALL 0x00032e80
ADD ESP,0x20
JMP 0x0013c662
FSTP ST0
ADD ESP,0x7c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP dword ptr [EBP + 0x8],0x1
JZ 0x0013d7ca
MOV EBX,dword ptr [ESP + 0x48]
XOR EDI,EDI
TEST EBX,EBX
JLE 0x0013c662
MOV EAX,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x28],EDI
FLD qword ptr [EAX + 0xffecf000]
MOV EAX,dword ptr [ESP + 0x3c]
JMP 0x0013c79f
MOV EDX,dword ptr [EDX + 0x2c]
MOV EBX,dword ptr [ESP + 0x98]
FLD qword ptr [EBX + EDX*0x8]
FUCOMI ST0,ST0
JP 0x0013c967
FLDZ
MOV EBX,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
JNC 0x0013c96b
FMUL dword ptr [EBX + 0xffecefec]
FLD qword ptr [EBX + 0xffecf000]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013d528
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [EBX + 0xffec6124]
MOVZX EDX,word ptr [ESP + 0x6a]
OR DH,0xc
MOV word ptr [ESP + 0x68],DX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x58]
FLDCW word ptr [ESP + 0x6a]
MOV ECX,dword ptr [ESP + 0x58]
MOV EBX,ECX
MOV EDX,ECX
MOVZX EDI,CH
SHR EBX,0x18
SHR EDX,0x10
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013d4d0
MOV byte ptr [ESI],BL
MOV EBX,EDI
MOV byte ptr [ESI + 0x1],DL
LEA EDX,[ESI + 0x4]
MOV byte ptr [ESI + 0x2],BL
MOV byte ptr [ESI + 0x3],CL
MOV ECX,dword ptr [EAX + 0x2a8]
CMP dword ptr [ECX + 0x34],0x4
JZ 0x0013d300
JMP 0x0013c748
FSTP ST0
JMP 0x0013c748
FSTP ST0
LEA ESI,[ESI]
MOV byte ptr [ESP],0x0
XOR ESI,ESI
XOR EBX,EBX
XOR EDI,EDI
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013d4b0
MOV byte ptr [EDX + 0x1],BL
MOV EBX,ESI
MOV ECX,EDI
MOV byte ptr [EDX + 0x2],BL
MOVZX EBX,byte ptr [ESP]
LEA ESI,[EDX + 0x4]
MOV byte ptr [EDX],CL
MOV byte ptr [EDX + 0x3],BL
MOV EBX,dword ptr [ESP + 0x98]
MOV EDX,dword ptr [EAX + 0x298]
ADD dword ptr [ESP + 0x28],0x1
ADD ESI,dword ptr [EBP + 0x24]
LEA EBX,[EBX + EDX*0x8]
MOV dword ptr [ESP + 0x98],EBX
MOV EBX,dword ptr [ESP + 0x28]
CMP EBX,dword ptr [ESP + 0x48]
JZ 0x0013c660
MOV EDX,dword ptr [EAX + 0x2a8]
MOV EBX,dword ptr [ESP + 0x98]
MOV EDX,dword ptr [EDX + 0x8]
FLD qword ptr [EBX + EDX*0x8]
FUCOMI ST0,ST0
JP 0x0013cf71
FLDZ
MOV EBX,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
JNC 0x0013cf78
FMUL dword ptr [EBX + 0xffecefec]
FUCOMI ST0,ST1
JNC 0x0013d568
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [EBX + 0xffec6124]
MOVZX EDX,word ptr [ESP + 0x6a]
OR DH,0xc
MOV word ptr [ESP + 0x68],DX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x58]
FLDCW word ptr [ESP + 0x6a]
MOV ECX,dword ptr [ESP + 0x58]
MOV EBX,ECX
MOV EDX,ECX
SHR EBX,0x18
SHR EDX,0x10
MOV EDI,EBX
MOV byte ptr [ESP],DL
MOVZX EBX,CH
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013d450
MOV EDX,EDI
MOV byte ptr [ESI + 0x2],BL
MOV byte ptr [ESI],DL
MOVZX EDX,byte ptr [ESP]
MOV byte ptr [ESI + 0x3],CL
MOV byte ptr [ESI + 0x1],DL
MOV EDX,dword ptr [EAX + 0x2a8]
MOV EBX,dword ptr [ESP + 0x98]
MOV EDX,dword ptr [EDX + 0x14]
FLD qword ptr [EBX + EDX*0x8]
FUCOMI ST0,ST0
JP 0x0013cf89
FLDZ
MOV EBX,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
JNC 0x0013cf90
FMUL dword ptr [EBX + 0xffecefec]
FLD qword ptr [EBX + 0xffecf000]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013d588
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [EBX + 0xffec6124]
MOVZX EDX,word ptr [ESP + 0x6a]
OR DH,0xc
MOV word ptr [ESP + 0x68],DX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x58]
FLDCW word ptr [ESP + 0x6a]
MOV ECX,dword ptr [ESP + 0x58]
MOV EBX,ECX
MOV EDX,ECX
MOVZX EDI,CH
SHR EBX,0x18
SHR EDX,0x10
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013d470
MOV byte ptr [ESI + 0x4],BL
MOV EBX,EDI
MOV byte ptr [ESI + 0x5],DL
LEA EDX,[ESI + 0x8]
MOV byte ptr [ESI + 0x6],BL
MOV byte ptr [ESI + 0x7],CL
MOV ECX,dword ptr [EAX + 0x2a8]
MOV EBX,dword ptr [ESP + 0x98]
MOV ECX,dword ptr [ECX + 0x20]
FLD qword ptr [EBX + ECX*0x8]
FUCOMI ST0,ST0
JP 0x0013cf5a
FLDZ
MOV EBX,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
JNC 0x0013cf60
FMUL dword ptr [EBX + 0xffecefec]
FLD qword ptr [EBX + 0xffecf000]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013d508
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [EBX + 0xffec6124]
MOVZX ECX,word ptr [ESP + 0x6a]
OR CH,0xc
MOV word ptr [ESP + 0x68],CX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x58]
FLDCW word ptr [ESP + 0x6a]
MOV ECX,dword ptr [ESP + 0x58]
MOV EBX,ECX
MOVZX ESI,CH
MOV byte ptr [ESP],CL
SHR EBX,0x18
MOV EDI,EBX
MOV EBX,ECX
SHR EBX,0x10
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013d490
MOV byte ptr [EDX + 0x1],BL
MOV EBX,ESI
MOV ECX,EDI
MOV byte ptr [EDX + 0x2],BL
MOVZX EBX,byte ptr [ESP]
LEA ESI,[EDX + 0x4]
MOV byte ptr [EDX],CL
MOV byte ptr [EDX + 0x3],BL
MOV EDX,dword ptr [EAX + 0x2a8]
MOV EDI,dword ptr [EDX + 0x28]
TEST EDI,EDI
JNZ 0x0013c6a0
JMP 0x0013c970
FSTP ST0
JMP 0x0013c970
FSTP ST0
LEA ESI,[ESI]
XOR ECX,ECX
XOR EDI,EDI
XOR EDX,EDX
XOR EBX,EBX
JMP 0x0013c70f
CMP dword ptr [EBP + 0x8],0x1
JZ 0x0013d5be
MOV EAX,dword ptr [ESP + 0x48]
XOR EDI,EDI
TEST EAX,EAX
JLE 0x0013c662
MOV dword ptr [ESP + 0x28],EDI
MOV EAX,dword ptr [ESP + 0x3c]
JMP 0x0013ca81
MOV EBX,dword ptr [EBX + 0x2c]
MOV ESI,dword ptr [ESP + 0x98]
FLD qword ptr [ESI + EBX*0x8]
FUCOMI ST0,ST0
JP 0x0013cbff
FLDZ
MOV EBX,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
JNC 0x0013cc03
FLD dword ptr [EBX + 0xffec6710]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013d3c8
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [EBX + 0xffec6124]
MOVZX EBX,word ptr [ESP + 0x6a]
OR BH,0xc
MOV word ptr [ESP + 0x68],BX
FLDCW word ptr [ESP + 0x68]
FISTP dword ptr [ESP + 0x54]
FLDCW word ptr [ESP + 0x6a]
MOV EBX,dword ptr [ESP + 0x54]
MOVZX EDI,BH
MOV ESI,EBX
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013cc16
MOV EBX,EDI
MOV EDX,ESI
XOR EDI,EDI
MOV byte ptr [ECX],BL
LEA EBX,[ECX + 0x2]
MOV byte ptr [ECX + 0x1],DL
MOV ESI,dword ptr [EAX + 0x2a8]
XOR ECX,ECX
CMP dword ptr [ESI + 0x34],0x4
JZ 0x0013cc36
JMP 0x0013ca40
FSTP ST0
FSTP ST0
JMP 0x0013ca40
FSTP ST0
FSTP ST0
NOP
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013cca5
LEA ESI,[EBX + 0x2]
MOV EDX,EDI
MOV byte ptr [EBX + 0x1],CL
MOV byte ptr [EBX],DL
MOV EBX,dword ptr [ESP + 0x98]
MOV ECX,dword ptr [EAX + 0x298]
ADD dword ptr [ESP + 0x28],0x1
ADD ESI,dword ptr [EBP + 0x24]
LEA EDI,[EBX + ECX*0x8]
MOV EBX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x98],EDI
CMP EBX,dword ptr [ESP + 0x48]
JZ 0x0013c662
MOV ECX,dword ptr [EAX + 0x2a8]
MOV EDX,dword ptr [ESP + 0x98]
MOV ECX,dword ptr [ECX + 0x8]
FLD qword ptr [EDX + ECX*0x8]
FUCOMI ST0,ST0
JP 0x0013cf38
FLDZ
MOV EBX,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
JNC 0x0013cf40
FLD dword ptr [EBX + 0xffec6710]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013d3b0
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [EBX + 0xffec6124]
MOVZX ECX,word ptr [ESP + 0x6a]
OR CH,0xc
MOV word ptr [ESP + 0x68],CX
FLDCW word ptr [ESP + 0x68]
FISTP dword ptr [ESP + 0x54]
FLDCW word ptr [ESP + 0x6a]
MOV ECX,dword ptr [ESP + 0x54]
MOVZX EBX,CH
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013cf50
MOV byte ptr [ESI],BL
MOV byte ptr [ESI + 0x1],CL
MOV ECX,dword ptr [EAX + 0x2a8]
MOV EBX,dword ptr [ESP + 0x98]
MOV ECX,dword ptr [ECX + 0x14]
FLD qword ptr [EBX + ECX*0x8]
FUCOMI ST0,ST0
JP 0x0013cf11
FLDZ
MOV EBX,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
JNC 0x0013cf18
FLD dword ptr [EBX + 0xffec6710]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013d380
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [EBX + 0xffec6124]
MOVZX ECX,word ptr [ESP + 0x6a]
OR CH,0xc
MOV word ptr [ESP + 0x68],CX
FLDCW word ptr [ESP + 0x68]
FISTP dword ptr [ESP + 0x54]
FLDCW word ptr [ESP + 0x6a]
MOV ECX,dword ptr [ESP + 0x54]
MOVZX EDI,CH
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013cf28
MOV EBX,EDI
MOV byte ptr [ESI + 0x3],CL
MOV byte ptr [ESI + 0x2],BL
LEA EBX,[ESI + 0x4]
MOV ECX,dword ptr [EAX + 0x2a8]
MOV ESI,dword ptr [ESP + 0x98]
MOV ECX,dword ptr [ECX + 0x20]
FLD qword ptr [ESI + ECX*0x8]
FUCOMI ST0,ST0
JP 0x0013ceec
FLDZ
MOV ESI,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
JNC 0x0013cef0
FLD dword ptr [ESI + 0xffec6710]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013d398
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [ESI + 0xffec6124]
MOVZX ECX,word ptr [ESP + 0x6a]
OR CH,0xc
MOV word ptr [ESP + 0x68],CX
FLDCW word ptr [ESP + 0x68]
FISTP dword ptr [ESP + 0x54]
FLDCW word ptr [ESP + 0x6a]
MOV ECX,dword ptr [ESP + 0x54]
MOVZX EDI,CH
MOV ESI,ECX
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013cf00
MOV ECX,EDI
MOV EDX,ESI
MOV byte ptr [EBX],CL
LEA ECX,[EBX + 0x2]
MOV byte ptr [EBX + 0x1],DL
MOV EBX,dword ptr [EAX + 0x2a8]
MOV ESI,dword ptr [EBX + 0x28]
TEST ESI,ESI
JNZ 0x0013c9a8
JMP 0x0013cc08
FSTP ST0
JMP 0x0013cc08
FSTP ST0
LEA ESI,[ESI]
XOR ESI,ESI
XOR EDI,EDI
CMP dword ptr [EBP + 0x40],0x1
JNZ 0x0013ca13
MOV EBX,ESI
MOV EDX,EDI
XOR EDI,EDI
MOV byte ptr [ECX],BL
LEA EBX,[ECX + 0x2]
MOV byte ptr [ECX + 0x1],DL
MOV ESI,dword ptr [EAX + 0x2a8]
XOR ECX,ECX
CMP dword ptr [ESI + 0x34],0x4
JNZ 0x0013ca40
MOV EDX,dword ptr [ESP + 0x2c]
MOV ESI,dword ptr [ESI + 0x38]
FLD dword ptr [EDX + 0xffec6710]
MOV dword ptr [ESP],EDX
MOV EDX,dword ptr [ESP + 0x98]
FLD ST0
FSUB qword ptr [EDX + ESI*0x8]
FUCOMI ST0,ST0
JP 0x0013ca35
FLDZ
MOV EDX,dword ptr [ESP]
FUCOMIP ST0,ST1
JNC 0x0013ca3b
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013d3e0
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [EDX + 0xffec6124]
MOVZX ECX,word ptr [ESP + 0x6a]
OR CH,0xc
MOV word ptr [ESP + 0x68],CX
FLDCW word ptr [ESP + 0x68]
FISTP dword ptr [ESP + 0x54]
FLDCW word ptr [ESP + 0x6a]
MOV ECX,dword ptr [ESP + 0x54]
CMP dword ptr [EBP + 0x40],0x1
MOVZX EDI,CH
JNZ 0x0013ca4a
MOV byte ptr [EBX],CL
LEA ESI,[EBX + 0x2]
MOV EDX,EDI
MOV byte ptr [EBX + 0x1],DL
JMP 0x0013ca54
CMP dword ptr [EBX + 0x34],0x4
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x34],0x0
JNZ 0x0013c547
LEA ESI,[ESI]
MOV EDX,dword ptr [EBX + 0x38]
MOV EDI,dword ptr [ESP + 0x98]
MOV EBX,dword ptr [ESP + 0x2c]
FLD dword ptr [EBX + 0xffec6710]
FSUB qword ptr [EDI + EDX*0x8]
FUCOMI ST0,ST0
JP 0x0013d5a3
FLDZ
FUCOMIP ST0,ST1
JNC 0x0013d5a7
MOV EDX,dword ptr [ESP + 0x44]
FILD qword ptr [ESP + 0x40]
TEST EDX,EDX
JNS 0x0013cd13
FADD dword ptr [EBX + 0xffec6714]
MOV EBX,dword ptr [ESP + 0x2c]
FSTP qword ptr [ESP + 0x60]
FLD qword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x30],0xffffffff
FMULP
MOV dword ptr [ESP + 0x34],0xffffffff
FDIV dword ptr [EBX + 0xffec6710]
FLD dword ptr [EBX + 0xffec6714]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013c530
FADD dword ptr [EBX + 0xffec6124]
FLD dword ptr [EBX + 0xffec6134]
FXCH
FUCOMI ST0,ST1
JNC 0x0013ce18
FSTP ST1
FNSTCW word ptr [ESP + 0x6a]
MOVZX EDX,word ptr [ESP + 0x6a]
OR DH,0xc
MOV word ptr [ESP + 0x68],DX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x30]
FLDCW word ptr [ESP + 0x6a]
JMP 0x0013c538
FNSTCW word ptr [ESP + 0x6a]
FSUBRP
MOVZX EDX,word ptr [ESP + 0x6a]
OR DH,0xc
MOV word ptr [ESP + 0x68],DX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x58]
FLDCW word ptr [ESP + 0x6a]
MOV EDX,dword ptr [ESP + 0x58]
MOV ECX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESP + 0x34],ECX
MOV ECX,EDX
MOV EDX,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x30],ECX
ADD EDX,0x80000000
MOV dword ptr [ESP + 0x34],EDX
JMP 0x0013c418
FNSTCW word ptr [ESP + 0x6a]
FSUBRP
MOVZX EDX,word ptr [ESP + 0x6a]
OR DH,0xc
MOV word ptr [ESP + 0x68],DX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x58]
FLDCW word ptr [ESP + 0x6a]
MOV EDX,dword ptr [ESP + 0x58]
MOV ECX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESP + 0x34],ECX
MOV ECX,EDX
MOV EDX,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x30],ECX
ADD EDX,0x80000000
MOV dword ptr [ESP + 0x34],EDX
JMP 0x0013c260
FNSTCW word ptr [ESP + 0x6a]
FSUBRP
MOVZX EDX,word ptr [ESP + 0x6a]
OR DH,0xc
MOV word ptr [ESP + 0x68],DX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x58]
FLDCW word ptr [ESP + 0x6a]
MOV EDX,dword ptr [ESP + 0x58]
MOV ECX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESP + 0x34],ECX
MOV ECX,EDX
MOV EDX,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x30],ECX
ADD EDX,0x80000000
MOV dword ptr [ESP + 0x34],EDX
JMP 0x0013c538
FNSTCW word ptr [ESP + 0x6a]
FSUBRP
MOVZX EAX,word ptr [ESP + 0x6a]
OR AH,0xc
MOV word ptr [ESP + 0x68],AX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x58]
FLDCW word ptr [ESP + 0x6a]
MOV EAX,dword ptr [ESP + 0x58]
MOV EDX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESP + 0x34],EDX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x30],EDX
ADD EAX,0x80000000
MOV dword ptr [ESP + 0x34],EAX
JMP 0x0013bef8
FNSTCW word ptr [ESP + 0x6a]
FSUBRP
MOVZX EDX,word ptr [ESP + 0x6a]
OR DH,0xc
MOV word ptr [ESP + 0x68],DX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x58]
FLDCW word ptr [ESP + 0x6a]
MOV EDX,dword ptr [ESP + 0x58]
MOV ECX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESP + 0x34],ECX
MOV ECX,EDX
MOV EDX,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x30],ECX
ADD EDX,0x80000000
MOV dword ptr [ESP + 0x34],EDX
JMP 0x0013c0b0
FSTP ST0
JMP 0x0013cef2
FSTP ST0
XOR ESI,ESI
XOR EDI,EDI
CMP dword ptr [EBP + 0x40],0x1
JNZ 0x0013cbe0
LEA ECX,[EBX + 0x2]
MOV EDX,ESI
MOV byte ptr [EBX],DL
MOV EDX,EDI
MOV byte ptr [EBX + 0x1],DL
JMP 0x0013cbec
FSTP ST0
JMP 0x0013cf1a
FSTP ST0
XOR ECX,ECX
XOR EDI,EDI
CMP dword ptr [EBP + 0x40],0x1
JNZ 0x0013cb64
MOV byte ptr [ESI + 0x2],CL
LEA EBX,[ESI + 0x4]
MOV EDX,EDI
MOV byte ptr [ESI + 0x3],DL
JMP 0x0013cb6f
FSTP ST0
JMP 0x0013cf42
FSTP ST0
XOR ECX,ECX
XOR EBX,EBX
CMP dword ptr [EBP + 0x40],0x1
JNZ 0x0013caf0
MOV byte ptr [ESI],CL
MOV byte ptr [ESI + 0x1],BL
JMP 0x0013caf5
FSTP ST0
JMP 0x0013cf62
FSTP ST0
MOV byte ptr [ESP],0x0
XOR ESI,ESI
XOR EBX,EBX
XOR EDI,EDI
JMP 0x0013c934
FSTP ST0
JMP 0x0013cf7a
FSTP ST0
XOR ECX,ECX
XOR EBX,EBX
MOV byte ptr [ESP],0x0
XOR EDI,EDI
JMP 0x0013c80f
FSTP ST0
JMP 0x0013cf92
FSTP ST0
XOR ECX,ECX
XOR EDI,EDI
XOR EDX,EDX
XOR EBX,EBX
JMP 0x0013c89f
CMP EBX,0x8
JNZ 0x0013d3f8
MOV EAX,dword ptr [ESP + 0x48]
TEST EAX,EAX
JLE 0x0013c662
XOR EDX,EDX
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x28],EBP
MOV ECX,dword ptr [ESP + 0x98]
JMP 0x0013cffc
FSTP ST0
JMP 0x0013cfd8
FSTP ST0
JMP 0x0013cfd8
FSTP ST0
LEA ESI,[ESI]
MOV byte ptr [ESI + 0x4],BL
MOV EBX,dword ptr [EAX + 0x298]
ADD EDX,0x1
LEA ECX,[ECX + EBX*0x8]
MOV EBX,dword ptr [ESP + 0x28]
MOV EBX,dword ptr [EBX + 0x24]
LEA ESI,[ESI + EBX*0x1 + 0x5]
CMP EDX,dword ptr [ESP + 0x48]
JZ 0x0013c662
MOV EBX,dword ptr [EAX + 0x2a8]
MOV EBX,dword ptr [EBX + 0x8]
FLD qword ptr [ECX + EBX*0x8]
XOR EBX,EBX
FUCOMI ST0,ST0
JP 0x0013d060
FLDZ
MOV EDI,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
JNC 0x0013d068
FDIV dword ptr [EDI + 0xffeceff0]
MOV EBX,0xffffffff
FLD dword ptr [EDI + 0xffeceff4]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013d070
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [EDI + 0xffec6124]
MOVZX EBX,word ptr [ESP + 0x6a]
OR BH,0xc
MOV word ptr [ESP + 0x68],BX
FLDCW word ptr [ESP + 0x68]
FISTP word ptr [ESP + 0x52]
FLDCW word ptr [ESP + 0x6a]
MOVZX EBX,word ptr [ESP + 0x52]
JMP 0x0013d078
FSTP ST0
JMP 0x0013d078
FSTP ST0
JMP 0x0013d078
FSTP ST0
LEA ESI,[ESI]
MOV byte ptr [ESI],BL
MOV EBX,dword ptr [EAX + 0x2a8]
MOV EBX,dword ptr [EBX + 0x14]
FLD qword ptr [ECX + EBX*0x8]
XOR EBX,EBX
FUCOMI ST0,ST0
JP 0x0013d0e0
FLDZ
MOV EDI,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
JNC 0x0013d0e8
FDIV dword ptr [EDI + 0xffeceff0]
MOV EBX,0xffffffff
FLD dword ptr [EDI + 0xffeceff4]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013d0f0
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [EDI + 0xffec6124]
MOVZX EBX,word ptr [ESP + 0x6a]
OR BH,0xc
MOV word ptr [ESP + 0x68],BX
FLDCW word ptr [ESP + 0x68]
FISTP word ptr [ESP + 0x52]
FLDCW word ptr [ESP + 0x6a]
MOVZX EBX,word ptr [ESP + 0x52]
JMP 0x0013d0f8
FSTP ST0
JMP 0x0013d0f8
FSTP ST0
JMP 0x0013d0f8
FSTP ST0
LEA ESI,[ESI]
MOV byte ptr [ESI + 0x1],BL
MOV EBX,dword ptr [EAX + 0x2a8]
MOV EBX,dword ptr [EBX + 0x20]
FLD qword ptr [ECX + EBX*0x8]
XOR EBX,EBX
FUCOMI ST0,ST0
JP 0x0013d160
FLDZ
MOV EDI,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
JNC 0x0013d168
FDIV dword ptr [EDI + 0xffeceff0]
MOV EBX,0xffffffff
FLD dword ptr [EDI + 0xffeceff4]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013d170
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [EDI + 0xffec6124]
MOVZX EBX,word ptr [ESP + 0x6a]
OR BH,0xc
MOV word ptr [ESP + 0x68],BX
FLDCW word ptr [ESP + 0x68]
FISTP word ptr [ESP + 0x52]
FLDCW word ptr [ESP + 0x6a]
MOVZX EBX,word ptr [ESP + 0x52]
JMP 0x0013d178
FSTP ST0
JMP 0x0013d178
FSTP ST0
JMP 0x0013d178
FSTP ST0
LEA ESI,[ESI]
MOV byte ptr [ESI + 0x2],BL
MOV EDI,dword ptr [EAX + 0x2a8]
XOR EBX,EBX
MOV EBP,dword ptr [EDI + 0x28]
TEST EBP,EBP
JZ 0x0013d1f8
MOV EDI,dword ptr [EDI + 0x2c]
FLD qword ptr [ECX + EDI*0x8]
FUCOMI ST0,ST0
JP 0x0013d1e1
FLDZ
MOV EDI,dword ptr [ESP + 0x2c]
FUCOMIP ST0,ST1
JNC 0x0013d1e5
FDIV dword ptr [EDI + 0xffeceff0]
MOV EBX,0xffffffff
FLD dword ptr [EDI + 0xffeceff4]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013d1f0
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [EDI + 0xffec6124]
MOVZX EBX,word ptr [ESP + 0x6a]
OR BH,0xc
MOV word ptr [ESP + 0x68],BX
FLDCW word ptr [ESP + 0x68]
FISTP word ptr [ESP + 0x52]
FLDCW word ptr [ESP + 0x6a]
MOVZX EBX,word ptr [ESP + 0x52]
JMP 0x0013d1f8
FSTP ST0
JMP 0x0013d1f8
FSTP ST0
JMP 0x0013d1f8
FSTP ST0
LEA ESI,[ESI]
MOV byte ptr [ESI + 0x3],BL
MOV EDI,dword ptr [EAX + 0x2a8]
XOR EBX,EBX
CMP dword ptr [EDI + 0x34],0x4
JNZ 0x0013cfd8
MOV EDI,dword ptr [EDI + 0x38]
MOV EBP,dword ptr [ESP + 0x2c]
FLD dword ptr [EBP + 0xffec6710]
FSUB qword ptr [ECX + EDI*0x8]
FUCOMI ST0,ST0
JP 0x0013cfc8
FLDZ
FUCOMIP ST0,ST1
JNC 0x0013cfcc
FDIV dword ptr [EBP + 0xffeceff0]
MOV EBX,0xffffffff
FLD dword ptr [EBP + 0xffeceff4]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013cfd0
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [EBP + 0xffec6124]
MOVZX EBX,word ptr [ESP + 0x6a]
OR BH,0xc
MOV word ptr [ESP + 0x68],BX
FLDCW word ptr [ESP + 0x68]
FISTP word ptr [ESP + 0x52]
FLDCW word ptr [ESP + 0x6a]
MOVZX EBX,word ptr [ESP + 0x52]
JMP 0x0013cfd8
MOV EDX,dword ptr [EBX + 0x20]
MOV EDI,dword ptr [ESP + 0x98]
FLD qword ptr [EDI + EDX*0x8]
FUCOMI ST0,ST0
JNP 0x0013c1b8
FSTP ST0
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x34],0x0
JMP 0x0013c274
MOV EDX,dword ptr [EBX + 0x14]
MOV EDI,dword ptr [ESP + 0x98]
FLD qword ptr [EDI + EDX*0x8]
FUCOMI ST0,ST0
JNP 0x0013bffe
FSTP ST0
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x34],0x0
JMP 0x0013c0c4
MOV EDX,dword ptr [EBX + 0x28]
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x34],0x0
TEST EDX,EDX
JZ 0x0013c42c
JMP 0x0013c36e
MOV ECX,dword ptr [ECX + 0x38]
MOV EBX,dword ptr [ESP + 0x2c]
MOV ESI,dword ptr [ESP + 0x98]
FLD dword ptr [EBX + 0xffec6710]
FSUB qword ptr [ESI + ECX*0x8]
FUCOMI ST0,ST0
JP 0x0013c73b
FLDZ
FUCOMIP ST0,ST1
JNC 0x0013c73f
FMUL dword ptr [EBX + 0xffecefec]
FLD qword ptr [EBX + 0xffecf000]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JNC 0x0013d548
FNSTCW word ptr [ESP + 0x6a]
FADD dword ptr [EBX + 0xffec6124]
MOVZX ECX,word ptr [ESP + 0x6a]
OR CH,0xc
MOV word ptr [ESP + 0x68],CX
FLDCW word ptr [ESP + 0x68]
FISTP qword ptr [ESP + 0x58]
FLDCW word ptr [ESP + 0x6a]
MOV ECX,dword ptr [ESP + 0x58]
MOV EBX,ECX
MOVZX ESI,CH
MOV byte ptr [ESP],CL
SHR EBX,0x18
MOV EDI,EBX
MOV EBX,ECX
SHR EBX,0x10
JMP 0x0013c752
FSTP ST0
MOV ECX,0xffffffff
MOV EDI,0xffffffff
JMP 0x0013cb5a
FSTP ST0
MOV ESI,0xffffffff
MOV EDI,0xffffffff
JMP 0x0013cbd6
FSTP ST0
MOV ECX,0xffffffff
MOV EBX,0xffffffff
JMP 0x0013cae6
FSTP ST0
MOV ESI,0xffffffff
MOV EDI,0xffffffff
JMP 0x0013ca09
FSTP ST0
MOV ECX,0xffffffff
MOV EDI,0xffffffff
JMP 0x0013ca40
MOV dword ptr [ESP + 0x40],0x0
MOV dword ptr [ESP + 0x44],0x0
TEST EBX,EBX
JZ 0x0013be09
JMP 0x0013bdd6
FSTP ST0
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x34],0x0
JMP 0x0013c260
FSTP ST0
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x34],0x0
JMP 0x0013c0b0
MOV byte ptr [ESI + 0x1],BL
MOVZX EBX,byte ptr [ESP]
MOV byte ptr [ESI],CL
MOV byte ptr [ESI + 0x2],BL
MOV EBX,EDI
MOV byte ptr [ESI + 0x3],BL
JMP 0x0013c82a
MOV byte ptr [ESI + 0x4],CL
MOV ECX,EDI
MOV byte ptr [ESI + 0x6],DL
LEA EDX,[ESI + 0x8]
MOV byte ptr [ESI + 0x5],CL
MOV byte ptr [ESI + 0x7],BL
JMP 0x0013c8ba
MOVZX ECX,byte ptr [ESP]
MOV byte ptr [EDX + 0x2],BL
MOV EBX,EDI
MOV byte ptr [EDX + 0x3],BL
MOV byte ptr [EDX],CL
MOV ECX,ESI
MOV byte ptr [EDX + 0x1],CL
LEA ESI,[EDX + 0x4]
JMP 0x0013c954
MOVZX ECX,byte ptr [ESP]
MOV byte ptr [EDX + 0x2],BL
MOV EBX,EDI
MOV byte ptr [EDX + 0x3],BL
MOV byte ptr [EDX],CL
MOV ECX,ESI
MOV byte ptr [EDX + 0x1],CL
LEA ESI,[EDX + 0x4]
JMP 0x0013c772
MOV byte ptr [ESI],CL
MOV ECX,EDI
MOV byte ptr [ESI + 0x2],DL
LEA EDX,[ESI + 0x4]
MOV byte ptr [ESI + 0x1],CL
MOV byte ptr [ESI + 0x3],BL
JMP 0x0013c729
FSTP ST0
JMP 0x0013d4f0
FSTP ST0
NOP
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x34],0x0
JMP 0x0013c418
FSTP ST0
MOV byte ptr [ESP],0xff
MOV ESI,0xffffffff
MOV EBX,0xffffffff
MOV EDI,0xffffffff
JMP 0x0013c934
FSTP ST0
MOV ECX,0xffffffff
MOV EDI,0xffffffff
MOV EDX,0xffffffff
MOV EBX,0xffffffff
JMP 0x0013c70f
FSTP ST0
MOV byte ptr [ESP],0xff
MOV ESI,0xffffffff
MOV EBX,0xffffffff
MOV EDI,0xffffffff
JMP 0x0013c752
FSTP ST0
MOV ECX,0xffffffff
MOV EBX,0xffffffff
MOV byte ptr [ESP],0xff
MOV EDI,0xffffffff
JMP 0x0013c80f
FSTP ST0
MOV ECX,0xffffffff
MOV EDI,0xffffffff
MOV EDX,0xffffffff
MOV EBX,0xffffffff
JMP 0x0013c89f
FSTP ST0
JMP 0x0013d5a9
FSTP ST0
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x34],0x0
JMP 0x0013c538
MOV EBX,dword ptr [ESP + 0x48]
TEST EBX,EBX
JLE 0x0013c662
MOV EAX,dword ptr [ESP + 0x2c]
XOR EDI,EDI
MOV dword ptr [ESP + 0x28],EDI
MOV EBX,dword ptr [ESP + 0x3c]
MOV EDI,dword ptr [ESP + 0x98]
FLD qword ptr [EAX + 0xffec6148]
FSTP qword ptr [ESP + 0x8]
JMP 0x0013d6a3
MOV EAX,dword ptr [EAX + 0x2c]
MOV ESI,dword ptr [ESP + 0x2c]
FLD qword ptr [ESI + 0xffec6148]
FMUL qword ptr [EDI + EAX*0x8]
FSTP dword ptr [ESP + 0x6c]
FLD dword ptr [ESP + 0x6c]
MOV dword ptr [ESP],EDX
SUB ESP,0x10
FSTP dword ptr [ESP]
CALL 0x00136290
ADD ESP,0x10
CMP dword ptr [EBP + 0x40],0x1
MOVZX ECX,AH
MOV EDX,dword ptr [ESP]
JZ 0x0013d780
MOV byte ptr [EDX],CL
LEA ESI,[EDX + 0x2]
MOV byte ptr [EDX + 0x1],AL
MOV EAX,dword ptr [EBX + 0x2a8]
FLDZ
MOV EDX,dword ptr [ESP + 0x2c]
CMP dword ptr [EAX + 0x34],0x4
JNZ 0x0013d65f
FSTP ST0
MOV EAX,dword ptr [EAX + 0x38]
FLD dword ptr [EDX + 0xffec6710]
FSUB qword ptr [EDI + EAX*0x8]
FMUL qword ptr [EDX + 0xffec6148]
FSTP dword ptr [ESP + 0x6c]
FLD dword ptr [ESP + 0x6c]
SUB ESP,0x10
FSTP dword ptr [ESP]
CALL 0x00136290
ADD ESP,0x10
CMP dword ptr [EBP + 0x40],0x1
MOVZX ECX,AH
JZ 0x0013d7a0
MOV byte ptr [ESI],CL
LEA EDX,[ESI + 0x2]
MOV byte ptr [ESI + 0x1],AL
MOV EAX,dword ptr [EBX + 0x298]
ADD EDX,dword ptr [EBP + 0x24]
ADD dword ptr [ESP + 0x28],0x1
LEA EDI,[EDI + EAX*0x8]
MOV EAX,dword ptr [ESP + 0x28]
MOV ESI,EDX
CMP EAX,dword ptr [ESP + 0x48]
JZ 0x0013c662
MOV EAX,dword ptr [EBX + 0x2a8]
SUB ESP,0x10
FLD qword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX + 0x8]
FMUL qword ptr [EDI + EAX*0x8]
FSTP dword ptr [ESP + 0x7c]
FLD dword ptr [ESP + 0x7c]
FSTP dword ptr [ESP]
CALL 0x00136290
ADD ESP,0x10
CMP dword ptr [EBP + 0x40],0x1
MOVZX EDX,AH
JZ 0x0013d7c0
MOV byte ptr [ESI],DL
MOV byte ptr [ESI + 0x1],AL
MOV EAX,dword ptr [EBX + 0x2a8]
SUB ESP,0x10
MOV EDX,dword ptr [ESP + 0x3c]
MOV EAX,dword ptr [EAX + 0x14]
FLD qword ptr [EDX + 0xffec6148]
FMUL qword ptr [EDI + EAX*0x8]
FSTP dword ptr [ESP + 0x7c]
FLD dword ptr [ESP + 0x7c]
FSTP dword ptr [ESP]
CALL 0x00136290
ADD ESP,0x10
CMP dword ptr [EBP + 0x40],0x1
MOVZX EDX,AH
JZ 0x0013d7b0
MOV byte ptr [ESI + 0x2],DL
LEA ECX,[ESI + 0x4]
MOV byte ptr [ESI + 0x3],AL
MOV EAX,dword ptr [EBX + 0x2a8]
MOV dword ptr [ESP],ECX
SUB ESP,0x10
MOV ESI,dword ptr [ESP + 0x3c]
MOV EAX,dword ptr [EAX + 0x20]
FLD qword ptr [ESI + 0xffec6148]
FMUL qword ptr [EDI + EAX*0x8]
FSTP dword ptr [ESP + 0x7c]
FLD dword ptr [ESP + 0x7c]
FSTP dword ptr [ESP]
CALL 0x00136290
ADD ESP,0x10
CMP dword ptr [EBP + 0x40],0x1
MOVZX ESI,AH
MOV ECX,dword ptr [ESP]
JZ 0x0013d790
MOV EDX,ESI
MOV byte ptr [ECX + 0x1],AL
MOV byte ptr [ECX],DL
LEA EDX,[ECX + 0x2]
MOV EAX,dword ptr [EBX + 0x2a8]
MOV ECX,dword ptr [EAX + 0x28]
TEST ECX,ECX
JNZ 0x0013d5f0
FLDZ
JMP 0x0013d608
MOV byte ptr [EDX],AL
LEA ESI,[EDX + 0x2]
MOV byte ptr [EDX + 0x1],CL
JMP 0x0013d631
MOV byte ptr [ECX],AL
LEA EDX,[ECX + 0x2]
MOV EAX,ESI
MOV byte ptr [ECX + 0x1],AL
JMP 0x0013d762
MOV byte ptr [ESI],AL
LEA EDX,[ESI + 0x2]
MOV byte ptr [ESI + 0x1],CL
JMP 0x0013d682
MOV byte ptr [ESI + 0x2],AL
LEA ECX,[ESI + 0x4]
MOV byte ptr [ESI + 0x3],DL
JMP 0x0013d71d
MOV byte ptr [ESI],AL
MOV byte ptr [ESI + 0x1],DL
JMP 0x0013d6db
MOV ECX,dword ptr [ESP + 0x48]
TEST ECX,ECX
JLE 0x0013c662
XOR EDI,EDI
MOV dword ptr [ESP + 0x28],EDI
JMP 0x0013d8b2
MOV EAX,dword ptr [EAX + 0x2c]
MOV ESI,dword ptr [ESP + 0x98]
FLD qword ptr [ESI + EAX*0x8]
FSTP dword ptr [ESP + 0x6c]
FLD dword ptr [ESP + 0x6c]
FMUL qword ptr [EBP + 0x44]
FADD qword ptr [EBP + 0xc]
FSTP dword ptr [ESP + 0x6c]
MOV EAX,dword ptr [ESP + 0x6c]
MOV ESI,EAX
MOV EDI,EAX
MOVZX ECX,AH
SHR ESI,0x18
SHR EDI,0x10
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013da58
MOV EDX,ESI
MOV byte ptr [EBX + 0x2],CL
MOV byte ptr [EBX],DL
LEA ECX,[EBX + 0x4]
MOV EDX,EDI
MOV byte ptr [EBX + 0x1],DL
MOV byte ptr [EBX + 0x3],AL
MOV EAX,dword ptr [ESP + 0x3c]
MOV EAX,dword ptr [EAX + 0x2a8]
CMP dword ptr [EAX + 0x34],0x4
JZ 0x0013da30
FLDZ
FMUL qword ptr [EBP + 0x44]
FADD qword ptr [EBP + 0xc]
FSTP dword ptr [ESP + 0x6c]
MOV EAX,dword ptr [ESP + 0x6c]
MOV EDI,EAX
MOV ESI,EAX
MOVZX EBX,AH
SHR EDI,0x18
SHR ESI,0x10
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013da18
MOV EDX,EDI
MOV byte ptr [ECX + 0x2],BL
MOV byte ptr [ECX],DL
MOV EDX,ESI
MOV byte ptr [ECX + 0x1],DL
LEA ESI,[ECX + 0x4]
MOV byte ptr [ECX + 0x3],AL
MOV EAX,dword ptr [ESP + 0x3c]
MOV EBX,dword ptr [ESP + 0x98]
ADD dword ptr [ESP + 0x28],0x1
ADD ESI,dword ptr [EBP + 0x24]
MOV EAX,dword ptr [EAX + 0x298]
LEA EAX,[EBX + EAX*0x8]
MOV dword ptr [ESP + 0x98],EAX
MOV EAX,dword ptr [ESP + 0x28]
CMP EAX,dword ptr [ESP + 0x48]
JZ 0x0013c662
MOV EAX,dword ptr [ESP + 0x3c]
MOV EBX,dword ptr [ESP + 0x98]
MOV EAX,dword ptr [EAX + 0x2a8]
MOV EAX,dword ptr [EAX + 0x8]
FLD qword ptr [EBX + EAX*0x8]
FSTP dword ptr [ESP + 0x6c]
FLD dword ptr [ESP + 0x6c]
FMUL qword ptr [EBP + 0x44]
FADD qword ptr [EBP + 0xc]
FSTP dword ptr [ESP + 0x6c]
MOV EAX,dword ptr [ESP + 0x6c]
MOV EDI,EAX
MOV EBX,EAX
MOVZX ECX,AH
SHR EDI,0x18
SHR EBX,0x10
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013da00
MOV EDX,EDI
MOV byte ptr [ESI + 0x1],BL
MOV byte ptr [ESI],DL
MOV byte ptr [ESI + 0x2],CL
MOV byte ptr [ESI + 0x3],AL
MOV EAX,dword ptr [ESP + 0x3c]
MOV EBX,dword ptr [ESP + 0x98]
MOV EAX,dword ptr [EAX + 0x2a8]
MOV EAX,dword ptr [EAX + 0x14]
FLD qword ptr [EBX + EAX*0x8]
FSTP dword ptr [ESP + 0x6c]
FLD dword ptr [ESP + 0x6c]
FMUL qword ptr [EBP + 0x44]
FADD qword ptr [EBP + 0xc]
FSTP dword ptr [ESP + 0x6c]
MOV EAX,dword ptr [ESP + 0x6c]
MOV EBX,EAX
MOV EDI,EAX
MOVZX ECX,AH
SHR EBX,0x18
SHR EDI,0x10
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013d9e8
MOV byte ptr [ESI + 0x4],BL
MOV EBX,EDI
MOV byte ptr [ESI + 0x6],CL
LEA ECX,[ESI + 0x8]
MOV byte ptr [ESI + 0x5],BL
MOV byte ptr [ESI + 0x7],AL
MOV EAX,dword ptr [ESP + 0x3c]
MOV EBX,dword ptr [ESP + 0x98]
MOV EAX,dword ptr [EAX + 0x2a8]
MOV EAX,dword ptr [EAX + 0x20]
FLD qword ptr [EBX + EAX*0x8]
FSTP dword ptr [ESP + 0x6c]
FLD dword ptr [ESP + 0x6c]
FMUL qword ptr [EBP + 0x44]
FADD qword ptr [EBP + 0xc]
FSTP dword ptr [ESP + 0x6c]
MOV EAX,dword ptr [ESP + 0x6c]
MOV ESI,EAX
MOV EDI,EAX
MOVZX EBX,AH
SHR ESI,0x18
SHR EDI,0x10
CMP dword ptr [EBP + 0x40],0x1
JZ 0x0013d9d0
MOV EDX,ESI
MOV byte ptr [ECX + 0x2],BL
MOV byte ptr [ECX],DL
LEA EBX,[ECX + 0x4]
MOV EDX,EDI
MOV byte ptr [ECX + 0x1],DL
MOV byte ptr [ECX + 0x3],AL
MOV EAX,dword ptr [ESP + 0x3c]
MOV EAX,dword ptr [EAX + 0x2a8]
MOV EDX,dword ptr [EAX + 0x28]
TEST EDX,EDX
JNZ 0x0013d7e8
FLDZ
JMP 0x0013d7fd
MOV byte ptr [ECX],AL
MOV EAX,EDI
MOV byte ptr [ECX + 0x2],AL
MOV EAX,ESI
MOV byte ptr [ECX + 0x1],BL
LEA EBX,[ECX + 0x4]
MOV byte ptr [ECX + 0x3],AL
JMP 0x0013d9aa
MOV byte ptr [ESI + 0x4],AL
MOV EAX,EDI
MOV byte ptr [ESI + 0x5],CL
LEA ECX,[ESI + 0x8]
MOV byte ptr [ESI + 0x6],AL
MOV byte ptr [ESI + 0x7],BL
JMP 0x0013d958
MOV byte ptr [ESI],AL
MOV EAX,EDI
MOV byte ptr [ESI + 0x1],CL
MOV byte ptr [ESI + 0x2],BL
MOV byte ptr [ESI + 0x3],AL
JMP 0x0013d903
MOV byte ptr [ECX],AL
MOV EAX,ESI
MOV byte ptr [ECX + 0x2],AL
LEA ESI,[ECX + 0x4]
MOV EAX,EDI
MOV byte ptr [ECX + 0x1],BL
MOV byte ptr [ECX + 0x3],AL
JMP 0x0013d881
MOV EBX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EAX + 0x38]
FLD dword ptr [EBX + 0xffec6710]
MOV EBX,dword ptr [ESP + 0x98]
FSUB qword ptr [EBX + EAX*0x8]
FSTP dword ptr [ESP + 0x6c]
FLD dword ptr [ESP + 0x6c]
JMP 0x0013d84a
MOV byte ptr [EBX],AL
MOV EAX,EDI
MOV byte ptr [EBX + 0x2],AL
MOV EAX,ESI
MOV byte ptr [EBX + 0x1],CL
LEA ECX,[EBX + 0x4]
MOV byte ptr [EBX + 0x3],AL
JMP 0x0013d834
MOV EBX,dword ptr [ESP + 0x48]
TEST EBX,EBX
JLE 0x0013c662
MOV dword ptr [ESP + 0x28],0x0
MOV EDI,dword ptr [ESP + 0x3c]
JMP 0x0013dbd2
MOV EAX,dword ptr [EAX + 0x2c]
MOV EBX,dword ptr [ESP + 0x98]
FLD qword ptr [EBX + EAX*0x8]
FMUL qword ptr [EBP + 0x44]
FADD qword ptr [EBP + 0xc]
FSTP qword ptr [ESP]
MOV EAX,dword ptr [ESP + 0x4]
MOV ECX,dword ptr [ESP]
MOV EBX,EAX
MOVZX ESI,AH
SHR EBX,0x18
MOV dword ptr [ESP + 0x8],EBX
MOV EBX,EAX
SHR EBX,0x10
MOV dword ptr [ESP + 0x10],EBX
MOV EBX,ECX
SHR EBX,0x18
MOV dword ptr [ESP + 0x18],EBX
MOV EBX,ECX
SHR EBX,0x10
CMP dword ptr [EBP + 0x40],0x1
MOV dword ptr [ESP + 0x20],EBX
MOVZX EBX,CH
MOV dword ptr [ESP],EBX
JZ 0x0013dea8
MOV byte ptr [EDX + 0x3],AL
MOVZX EAX,byte ptr [ESP + 0x18]
MOVZX EBX,byte ptr [ESP + 0x8]
MOV byte ptr [EDX + 0x7],CL
MOV byte ptr [EDX + 0x4],AL
MOVZX EAX,byte ptr [ESP + 0x20]
MOV byte ptr [EDX],BL
MOVZX EBX,byte ptr [ESP + 0x10]
MOV byte ptr [EDX + 0x5],AL
MOVZX EAX,byte ptr [ESP]
MOV byte ptr [EDX + 0x1],BL
MOV EBX,ESI
MOV byte ptr [EDX + 0x2],BL
MOV byte ptr [EDX + 0x6],AL
LEA EAX,[EDX + 0x8]
MOV EDX,dword ptr [EDI + 0x2a8]
CMP dword ptr [EDX + 0x34],0x4
JZ 0x0013de88
FLDZ
FMUL qword ptr [EBP + 0x44]
FADD qword ptr [EBP + 0xc]
FSTP qword ptr [ESP]
MOV ECX,dword ptr [ESP + 0x4]
MOV EDX,dword ptr [ESP]
MOV EBX,ECX
MOVZX ESI,CH
SHR EBX,0x18
MOV dword ptr [ESP + 0x8],EBX
MOV EBX,ECX
SHR EBX,0x10
MOV dword ptr [ESP + 0x10],EBX
MOV EBX,EDX
SHR EBX,0x18
MOV dword ptr [ESP + 0x18],EBX
MOV EBX,EDX
SHR EBX,0x10
CMP dword ptr [EBP + 0x40],0x1
MOV dword ptr [ESP + 0x20],EBX
MOVZX EBX,DH
MOV dword ptr [ESP],EBX
JZ 0x0013de48
MOVZX EBX,byte ptr [ESP + 0x8]
MOV byte ptr [EAX + 0x3],CL
MOV byte ptr [EAX + 0x7],DL
MOV byte ptr [EAX],BL
MOVZX EBX,byte ptr [ESP + 0x10]
MOV byte ptr [EAX + 0x1],BL
MOV EBX,ESI
MOV byte ptr [EAX + 0x2],BL
MOVZX EBX,byte ptr [ESP + 0x18]
LEA ESI,[EAX + 0x8]
MOV byte ptr [EAX + 0x4],BL
MOVZX EBX,byte ptr [ESP + 0x20]
MOV byte ptr [EAX + 0x5],BL
MOVZX EBX,byte ptr [ESP]
MOV byte ptr [EAX + 0x6],BL
MOV EBX,dword ptr [ESP + 0x98]
MOV EAX,dword ptr [EDI + 0x298]
ADD dword ptr [ESP + 0x28],0x1
ADD ESI,dword ptr [EBP + 0x24]
LEA EAX,[EBX + EAX*0x8]
MOV dword ptr [ESP + 0x98],EAX
MOV EAX,dword ptr [ESP + 0x28]
CMP EAX,dword ptr [ESP + 0x48]
JZ 0x0013c662
MOV EAX,dword ptr [EDI + 0x2a8]
MOV EBX,dword ptr [ESP + 0x98]
MOV EAX,dword ptr [EAX + 0x8]
FLD qword ptr [EBX + EAX*0x8]
FMUL qword ptr [EBP + 0x44]
FADD qword ptr [EBP + 0xc]
FSTP qword ptr [ESP]
MOV EDX,dword ptr [ESP + 0x4]
MOV EAX,EDX
MOVZX EBX,DH
SHR EAX,0x18
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,EDX
SHR EAX,0x10
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP]
MOV ECX,EAX
SHR ECX,0x18
MOV dword ptr [ESP + 0x18],ECX
MOV ECX,EAX
SHR ECX,0x10
CMP dword ptr [EBP + 0x40],0x1
MOV dword ptr [ESP + 0x20],ECX
MOVZX ECX,AH
MOV dword ptr [ESP],ECX
JZ 0x0013de10
MOV byte ptr [ESI + 0x2],BL
MOVZX EBX,byte ptr [ESP + 0x18]
MOVZX ECX,byte ptr [ESP + 0x8]
MOV byte ptr [ESI + 0x3],DL
MOV byte ptr [ESI + 0x7],AL
MOV byte ptr [ESI + 0x4],BL
MOVZX EBX,byte ptr [ESP + 0x20]
MOV byte ptr [ESI],CL
MOVZX ECX,byte ptr [ESP + 0x10]
MOV byte ptr [ESI + 0x5],BL
MOVZX EBX,byte ptr [ESP]
MOV byte ptr [ESI + 0x1],CL
MOV byte ptr [ESI + 0x6],BL
MOV EAX,dword ptr [EDI + 0x2a8]
MOV EBX,dword ptr [ESP + 0x98]
MOV EAX,dword ptr [EAX + 0x14]
FLD qword ptr [EBX + EAX*0x8]
FMUL qword ptr [EBP + 0x44]
FADD qword ptr [EBP + 0xc]
FSTP qword ptr [ESP]
MOV EDX,dword ptr [ESP]
MOV EAX,dword ptr [ESP + 0x4]
MOV ECX,EDX
MOV EBX,EAX
SHR ECX,0x18
SHR EBX,0x18
MOV dword ptr [ESP + 0x18],ECX
MOV ECX,EDX
MOV dword ptr [ESP + 0x8],EBX
MOV EBX,EAX
SHR ECX,0x10
SHR EBX,0x10
CMP dword ptr [EBP + 0x40],0x1
MOV dword ptr [ESP + 0x20],ECX
MOVZX ECX,DH
MOV dword ptr [ESP + 0x10],EBX
MOVZX EBX,AH
MOV dword ptr [ESP],ECX
JZ 0x0013ddd0
MOV byte ptr [ESI + 0xb],AL
MOVZX EAX,byte ptr [ESP + 0x18]
MOVZX ECX,byte ptr [ESP + 0x8]
MOV byte ptr [ESI + 0xa],BL
MOV byte ptr [ESI + 0xf],DL
MOV byte ptr [ESI + 0xc],AL
MOVZX EAX,byte ptr [ESP + 0x20]
MOV byte ptr [ESI + 0x8],CL
MOVZX ECX,byte ptr [ESP + 0x10]
MOV byte ptr [ESI + 0xd],AL
MOVZX EAX,byte ptr [ESP]
MOV byte ptr [ESI + 0x9],CL
MOV byte ptr [ESI + 0xe],AL
LEA EAX,[ESI + 0x10]
MOV EDX,dword ptr [EDI + 0x2a8]
MOV EBX,dword ptr [ESP + 0x98]
MOV EDX,dword ptr [EDX + 0x20]
FLD qword ptr [EBX + EDX*0x8]
FMUL qword ptr [EBP + 0x44]
FADD qword ptr [EBP + 0xc]
FSTP qword ptr [ESP]
MOV EDX,dword ptr [ESP + 0x4]
MOV ECX,dword ptr [ESP]
MOV EBX,EDX
MOVZX ESI,DH
SHR EBX,0x18
MOV dword ptr [ESP + 0x8],EBX
MOV EBX,EDX
SHR EBX,0x10
MOV dword ptr [ESP + 0x10],EBX
MOV EBX,ECX
SHR EBX,0x18
MOV dword ptr [ESP + 0x18],EBX
MOV EBX,ECX
SHR EBX,0x10
CMP dword ptr [EBP + 0x40],0x1
MOV dword ptr [ESP + 0x20],EBX
MOVZX EBX,CH
MOV dword ptr [ESP],EBX
JZ 0x0013dd90
MOVZX EBX,byte ptr [ESP + 0x8]
MOV byte ptr [EAX + 0x3],DL
LEA EDX,[EAX + 0x8]
MOV byte ptr [EAX + 0x7],CL
MOV byte ptr [EAX],BL
MOVZX EBX,byte ptr [ESP + 0x10]
MOV byte ptr [EAX + 0x1],BL
MOV EBX,ESI
MOV byte ptr [EAX + 0x2],BL
MOVZX EBX,byte ptr [ESP + 0x18]
MOV byte ptr [EAX + 0x4],BL
MOVZX EBX,byte ptr [ESP + 0x20]
MOV byte ptr [EAX + 0x5],BL
MOVZX EBX,byte ptr [ESP]
MOV byte ptr [EAX + 0x6],BL
MOV EAX,dword ptr [EDI + 0x2a8]
MOV ECX,dword ptr [EAX + 0x28]
TEST ECX,ECX
JNZ 0x0013da90
FLDZ
JMP 0x0013da9d
MOVZX EBX,byte ptr [ESP]
MOV byte ptr [EAX + 0x4],DL
LEA EDX,[EAX + 0x8]
MOV byte ptr [EAX],CL
MOV byte ptr [EAX + 0x1],BL
MOVZX EBX,byte ptr [ESP + 0x20]
MOV byte ptr [EAX + 0x2],BL
MOVZX EBX,byte ptr [ESP + 0x18]
MOV byte ptr [EAX + 0x3],BL
MOV EBX,ESI
MOV byte ptr [EAX + 0x5],BL
MOVZX EBX,byte ptr [ESP + 0x10]
MOV byte ptr [EAX + 0x6],BL
MOVZX EBX,byte ptr [ESP + 0x8]
MOV byte ptr [EAX + 0x7],BL
JMP 0x0013dd72
MOV byte ptr [ESI + 0x8],DL
MOVZX EDX,byte ptr [ESP]
MOV byte ptr [ESI + 0xc],AL
MOVZX EAX,byte ptr [ESP + 0x10]
MOV byte ptr [ESI + 0xd],BL
MOVZX EBX,byte ptr [ESP + 0x8]
MOV byte ptr [ESI + 0x9],DL
MOVZX EDX,byte ptr [ESP + 0x20]
MOV byte ptr [ESI + 0xe],AL
LEA EAX,[ESI + 0x10]
MOV byte ptr [ESI + 0xf],BL
MOV byte ptr [ESI + 0xa],DL
MOVZX EDX,byte ptr [ESP + 0x18]
MOV byte ptr [ESI + 0xb],DL
JMP 0x0013dce8
MOV byte ptr [ESI],AL
MOVZX EAX,byte ptr [ESP]
MOV byte ptr [ESI + 0x4],DL
MOV byte ptr [ESI + 0x5],BL
MOV byte ptr [ESI + 0x1],AL
MOVZX EAX,byte ptr [ESP + 0x20]
MOV byte ptr [ESI + 0x2],AL
MOVZX EAX,byte ptr [ESP + 0x18]
MOV byte ptr [ESI + 0x3],AL
MOVZX EAX,byte ptr [ESP + 0x10]
MOV byte ptr [ESI + 0x6],AL
MOVZX EAX,byte ptr [ESP + 0x8]
MOV byte ptr [ESI + 0x7],AL
JMP 0x0013dc5b
MOVZX EBX,byte ptr [ESP]
MOV byte ptr [EAX],DL
MOV byte ptr [EAX + 0x4],CL
MOV byte ptr [EAX + 0x1],BL
MOVZX EBX,byte ptr [ESP + 0x20]
MOV byte ptr [EAX + 0x2],BL
MOVZX EBX,byte ptr [ESP + 0x18]
MOV byte ptr [EAX + 0x3],BL
MOV EBX,ESI
MOV byte ptr [EAX + 0x5],BL
MOVZX EBX,byte ptr [ESP + 0x10]
LEA ESI,[EAX + 0x8]
MOV byte ptr [EAX + 0x6],BL
MOVZX EBX,byte ptr [ESP + 0x8]
MOV byte ptr [EAX + 0x7],BL
JMP 0x0013dba5
MOV EBX,dword ptr [ESP + 0x2c]
MOV EDX,dword ptr [EDX + 0x38]
FLD dword ptr [EBX + 0xffec6710]
MOV EBX,dword ptr [ESP + 0x98]
FSUB qword ptr [EBX + EDX*0x8]
JMP 0x0013db2a
MOVZX EBX,byte ptr [ESP]
MOV byte ptr [EDX + 0x4],AL
MOV EAX,ESI
MOV byte ptr [EDX + 0x5],AL
MOVZX EAX,byte ptr [ESP + 0x10]
MOV byte ptr [EDX],CL
MOV byte ptr [EDX + 0x1],BL
MOVZX EBX,byte ptr [ESP + 0x20]
MOV byte ptr [EDX + 0x6],AL
LEA EAX,[EDX + 0x8]
MOV byte ptr [EDX + 0x2],BL
MOVZX EBX,byte ptr [ESP + 0x18]
MOV byte ptr [EDX + 0x3],BL
MOVZX EBX,byte ptr [ESP + 0x8]
MOV byte ptr [EDX + 0x7],BL
JMP 0x0013db18
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid __regparm2\nFUN_0013bd70(int param_1,uint *param_2,int param_3,undefined4 param_4,int param_5,byte *param_6,\n            undefined4 param_7)\n\n{\n  float fVar1;\n  double dVar2;\n  longlong lVar3;\n  float fVar4;\n  double dVar5;\n  undefined2 uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte bVar10;\n  byte bVar11;\n  byte bVar12;\n  int iVar13;\n  byte bVar14;\n  int iVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  byte local_8c;\n  byte local_84;\n  byte local_7c;\n  byte local_74;\n  byte local_6c;\n  int local_64;\n  undefined8 local_5c;\n  int local_4c;\n  int iStack_48;\n  int local_40;\n  byte local_34;\n  \n  dVar5 = DAT_002a8000;\n  dVar2 = _DAT_0029f148;\n  if (*(int *)(param_1 + 4) != 2) {\n    ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n    return;\n  }\n  uVar16 = *param_2;\n  if (uVar16 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (param_3 < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar16 < 0x11) {\n    if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar16 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }\n  uVar9 = 0;\n  if (uVar16 < 0x41) {\n    uVar9 = uVar16;\n  }\n  bVar10 = (byte)(uVar9 - 1);\n  bVar11 = bVar10 & 0x1f;\n  uVar7 = 2 << (bVar10 & 0x1f);\n  uVar8 = uVar7;\n  uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11;\n  if ((uVar9 - 1 & 0x20) != 0) {\n    uVar8 = 0;\n    uVar18 = uVar7;\n  }\n  local_4c = uVar8 - 1;\n  iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0);\nLAB_0013be09:\n  if (param_3 < 1) {\n    return;\n  }\n  local_40 = 0;\n  do {\n    local_5c = 0;\n    iVar13 = *(int *)(param_1 + 0x2a8);\n    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);\n    if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar9 = param_2[0x14];\n    if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }\n    while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n    param_6 = param_6 + param_2[9];\n    if (local_40 == param_3) {\n      return;\n    }\n    uVar16 = *param_2;\n  } while( true );\n}\n\n" comment comment (function_definition "void __regparm2\nFUN_0013bd70(int param_1,uint *param_2,int param_3,undefined4 param_4,int param_5,byte *param_6,\n            undefined4 param_7)\n\n{\n  float fVar1;\n  double dVar2;\n  longlong lVar3;\n  float fVar4;\n  double dVar5;\n  undefined2 uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte bVar10;\n  byte bVar11;\n  byte bVar12;\n  int iVar13;\n  byte bVar14;\n  int iVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  byte local_8c;\n  byte local_84;\n  byte local_7c;\n  byte local_74;\n  byte local_6c;\n  int local_64;\n  undefined8 local_5c;\n  int local_4c;\n  int iStack_48;\n  int local_40;\n  byte local_34;\n  \n  dVar5 = DAT_002a8000;\n  dVar2 = _DAT_0029f148;\n  if (*(int *)(param_1 + 4) != 2) {\n    ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n    return;\n  }\n  uVar16 = *param_2;\n  if (uVar16 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (param_3 < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar16 < 0x11) {\n    if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar16 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }\n  uVar9 = 0;\n  if (uVar16 < 0x41) {\n    uVar9 = uVar16;\n  }\n  bVar10 = (byte)(uVar9 - 1);\n  bVar11 = bVar10 & 0x1f;\n  uVar7 = 2 << (bVar10 & 0x1f);\n  uVar8 = uVar7;\n  uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11;\n  if ((uVar9 - 1 & 0x20) != 0) {\n    uVar8 = 0;\n    uVar18 = uVar7;\n  }\n  local_4c = uVar8 - 1;\n  iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0);\nLAB_0013be09:\n  if (param_3 < 1) {\n    return;\n  }\n  local_40 = 0;\n  do {\n    local_5c = 0;\n    iVar13 = *(int *)(param_1 + 0x2a8);\n    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);\n    if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar9 = param_2[0x14];\n    if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }\n    while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n    param_6 = param_6 + param_2[9];\n    if (local_40 == param_3) {\n      return;\n    }\n    uVar16 = *param_2;\n  } while( true );\n}" primitive_type (ERROR "__regparm2" identifier) (function_declarator "FUN_0013bd70(int param_1,uint *param_2,int param_3,undefined4 param_4,int param_5,byte *param_6,\n            undefined4 param_7)" identifier (parameter_list "(int param_1,uint *param_2,int param_3,undefined4 param_4,int param_5,byte *param_6,\n            undefined4 param_7)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "byte *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined4 param_7" type_identifier identifier) ))) (compound_statement "{\n  float fVar1;\n  double dVar2;\n  longlong lVar3;\n  float fVar4;\n  double dVar5;\n  undefined2 uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte bVar10;\n  byte bVar11;\n  byte bVar12;\n  int iVar13;\n  byte bVar14;\n  int iVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  byte local_8c;\n  byte local_84;\n  byte local_7c;\n  byte local_74;\n  byte local_6c;\n  int local_64;\n  undefined8 local_5c;\n  int local_4c;\n  int iStack_48;\n  int local_40;\n  byte local_34;\n  \n  dVar5 = DAT_002a8000;\n  dVar2 = _DAT_0029f148;\n  if (*(int *)(param_1 + 4) != 2) {\n    ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n    return;\n  }\n  uVar16 = *param_2;\n  if (uVar16 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (param_3 < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar16 < 0x11) {\n    if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar16 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }\n  uVar9 = 0;\n  if (uVar16 < 0x41) {\n    uVar9 = uVar16;\n  }\n  bVar10 = (byte)(uVar9 - 1);\n  bVar11 = bVar10 & 0x1f;\n  uVar7 = 2 << (bVar10 & 0x1f);\n  uVar8 = uVar7;\n  uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11;\n  if ((uVar9 - 1 & 0x20) != 0) {\n    uVar8 = 0;\n    uVar18 = uVar7;\n  }\n  local_4c = uVar8 - 1;\n  iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0);\nLAB_0013be09:\n  if (param_3 < 1) {\n    return;\n  }\n  local_40 = 0;\n  do {\n    local_5c = 0;\n    iVar13 = *(int *)(param_1 + 0x2a8);\n    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);\n    if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar9 = param_2[0x14];\n    if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }\n    while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n    param_6 = param_6 + param_2[9];\n    if (local_40 == param_3) {\n      return;\n    }\n    uVar16 = *param_2;\n  } while( true );\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "undefined2 uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "byte local_8c;" type_identifier identifier ;) (declaration "byte local_84;" type_identifier identifier ;) (declaration "byte local_7c;" type_identifier identifier ;) (declaration "byte local_74;" type_identifier identifier ;) (declaration "byte local_6c;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "undefined8 local_5c;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int iStack_48;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "byte local_34;" type_identifier identifier ;) (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;) (expression_statement "dVar2 = _DAT_0029f148;" (assignment_expression "dVar2 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 4) != 2) {\n    ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n    return;\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_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n    return;\n  }" { (expression_statement "ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);" (call_expression "ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318)" identifier (argument_list "(param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318)" ( identifier , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , (string_literal ""ExportCMYKOQuantum"" " 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) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (uVar16 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (param_3 < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );\n  }" if (parenthesized_expression "(uVar16 == 0x10)" ( (binary_expression "uVar16 == 0x10" identifier == number_literal) )) (compound_statement "{\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (param_3 < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );\n  }" { (if_statement "if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" if (parenthesized_expression "(param_2[2] == 1)" ( (binary_expression "param_2[2] == 1" (subscript_expression "param_2[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" { (if_statement "if (param_3 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);" do (compound_statement "{\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      }" { (expression_statement "uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));" (assignment_expression "uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)))" identifier = (call_expression "FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)))" identifier (argument_list "((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)))" ( (cast_expression "(float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8))" ( (binary_expression "(longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (binary_expression "(longdouble)dVar2 *\n                                    (longdouble)" (cast_expression "(longdouble)dVar2" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "param_5 + *(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 "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" identifier = (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar6 >> 8)" ( (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }" { (expression_statement "*param_6 = (byte)uVar6;" (assignment_expression "*param_6 = (byte)uVar6" (pointer_expression "*param_6" * identifier) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[1] = bVar11;" (assignment_expression "param_6[1] = bVar11" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }" else (compound_statement "{\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }" { (expression_statement "*param_6 = bVar11;" (assignment_expression "*param_6 = bVar11" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = (byte)uVar6;" (assignment_expression "param_6[1] = (byte)uVar6" (subscript_expression "param_6[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));" (assignment_expression "uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" identifier = (call_expression "FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" identifier (argument_list "((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" ( (cast_expression "(float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8))" ( (binary_expression "(longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (binary_expression "(longdouble)_DAT_0029f148 *\n                                    (longdouble)" (cast_expression "(longdouble)_DAT_0029f148" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "param_5 + *(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 "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" identifier = (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar6 >> 8)" ( (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }" { (expression_statement "param_6[2] = (byte)uVar6;" (assignment_expression "param_6[2] = (byte)uVar6" (subscript_expression "param_6[2]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[3] = bVar11;" (assignment_expression "param_6[3] = bVar11" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }" else (compound_statement "{\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }" { (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = (byte)uVar6;" (assignment_expression "param_6[3] = (byte)uVar6" (subscript_expression "param_6[3]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));" (assignment_expression "uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" identifier = (call_expression "FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" identifier (argument_list "((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" ( (cast_expression "(float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8))" ( (binary_expression "(longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (binary_expression "(longdouble)_DAT_0029f148 *\n                                    (longdouble)" (cast_expression "(longdouble)_DAT_0029f148" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "param_5 + *(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 "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" identifier = (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar6 >> 8)" ( (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }" { (expression_statement "param_6[4] = (byte)uVar6;" (assignment_expression "param_6[4] = (byte)uVar6" (subscript_expression "param_6[4]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[5] = bVar11;" (assignment_expression "param_6[5] = bVar11" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }" else (compound_statement "{\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }" { (expression_statement "param_6[5] = (byte)uVar6;" (assignment_expression "param_6[5] = (byte)uVar6" (subscript_expression "param_6[5]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[4] = bVar11;" (assignment_expression "param_6[4] = bVar11" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(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)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }" else (compound_statement "{\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }" { (expression_statement "fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));" (assignment_expression "fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" identifier = (cast_expression "(float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" ( (binary_expression "(longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (binary_expression "(longdouble)_DAT_0029f148 *\n                         (longdouble)" (cast_expression "(longdouble)_DAT_0029f148" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "param_5 + *(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 "uVar6 = FUN_00136290(fVar1);" (assignment_expression "uVar6 = FUN_00136290(fVar1)" identifier = (call_expression "FUN_00136290(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" identifier = (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar6 >> 8)" ( (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }" { (expression_statement "param_6[6] = (byte)uVar6;" (assignment_expression "param_6[6] = (byte)uVar6" (subscript_expression "param_6[6]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[7] = bVar11;" (assignment_expression "param_6[7] = bVar11" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }" else (compound_statement "{\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }" { (expression_statement "param_6[6] = bVar11;" (assignment_expression "param_6[6] = bVar11" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = (byte)uVar6;" (assignment_expression "param_6[7] = (byte)uVar6" (subscript_expression "param_6[7]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }" { (expression_statement "fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;" (assignment_expression "fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148" identifier = (binary_expression "(DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148" (parenthesized_expression "(DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" ( (binary_expression "DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "param_5 + *(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)_DAT_0029f148" ( (type_descriptor "float" primitive_type) ) identifier))) ;) })) (expression_statement "uVar6 = FUN_00136290(fVar1);" (assignment_expression "uVar6 = FUN_00136290(fVar1)" identifier = (call_expression "FUN_00136290(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" identifier = (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar6 >> 8)" ( (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }" { (expression_statement "param_6[8] = (byte)uVar6;" (assignment_expression "param_6[8] = (byte)uVar6" (subscript_expression "param_6[8]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[9] = bVar11;" (assignment_expression "param_6[9] = bVar11" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }" else (compound_statement "{\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }" { (expression_statement "param_6[8] = bVar11;" (assignment_expression "param_6[8] = bVar11" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[9] = (byte)uVar6;" (assignment_expression "param_6[9] = (byte)uVar6" (subscript_expression "param_6[9]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "param_6 = param_6 + param_2[9] + 10;" (assignment_expression "param_6 = param_6 + param_2[9] + 10" identifier = (binary_expression "param_6 + param_2[9] + 10" (binary_expression "param_6 + param_2[9]" identifier + (subscript_expression "param_2[9]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "param_5 + *(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))) ;) }) while (parenthesized_expression "(local_64 != param_3)" ( (binary_expression "local_64 != param_3" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if (param_3 < 1) {\n      return;\n    }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );" do (compound_statement "{\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    }" { (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "param_5 + *(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 (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x10] != 1) goto LAB_0013caf0;" if (parenthesized_expression "(param_2[0x10] != 1)" ( (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0013caf0;" goto statement_identifier ;)) (labeled_statement "LAB_0013cf50:\n        *param_6 = bVar11;" statement_identifier : (expression_statement "*param_6 = bVar11;" (assignment_expression "*param_6 = bVar11" (pointer_expression "*param_6" * identifier) = identifier) ;)) (expression_statement "param_6[1] = bVar10;" (assignment_expression "param_6[1] = bVar10" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }" else (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }" { (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" ( (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "bVar14 = 0xff;" (assignment_expression "bVar14 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" else (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" { (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar14 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar14 = (byte)((uint)iVar13 >> 8)" identifier = (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) (expression_statement "bVar12 = (byte)iVar13;" (assignment_expression "bVar12 = (byte)iVar13" identifier = (cast_expression "(byte)iVar13" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar11 = bVar12;" (assignment_expression "bVar11 = bVar12" identifier = identifier) ;) (expression_statement "bVar10 = bVar14;" (assignment_expression "bVar10 = bVar14" identifier = identifier) ;) (if_statement "if (param_2[0x10] == 1) goto LAB_0013cf50;" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0013cf50;" goto statement_identifier ;)) (labeled_statement "LAB_0013caf0:\n        *param_6 = bVar14;" statement_identifier : (expression_statement "*param_6 = bVar14;" (assignment_expression "*param_6 = bVar14" (pointer_expression "*param_6" * identifier) = identifier) ;)) (expression_statement "param_6[1] = bVar12;" (assignment_expression "param_6[1] = bVar12" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "param_5 + *(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 (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x10] != 1) goto LAB_0013cb64;" if (parenthesized_expression "(param_2[0x10] != 1)" ( (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0013cb64;" goto statement_identifier ;)) (labeled_statement "LAB_0013cf28:\n        param_6[2] = bVar11;" statement_identifier : (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[3] = bVar12;" (assignment_expression "param_6[3] = bVar12" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }" else (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }" { (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" ( (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" else (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" { (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar12 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar12 = (byte)((uint)iVar13 >> 8)" identifier = (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) (expression_statement "bVar10 = (byte)iVar13;" (assignment_expression "bVar10 = (byte)iVar13" identifier = (cast_expression "(byte)iVar13" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar11 = bVar10;" (assignment_expression "bVar11 = bVar10" identifier = identifier) ;) (if_statement "if (param_2[0x10] == 1) goto LAB_0013cf28;" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0013cf28;" goto statement_identifier ;)) (labeled_statement "LAB_0013cb64:\n        param_6[3] = bVar10;" statement_identifier : (expression_statement "param_6[3] = bVar10;" (assignment_expression "param_6[3] = bVar10" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[2] = bVar12;" (assignment_expression "param_6[2] = bVar12" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "param_5 + *(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 (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x10] != 1) goto LAB_0013cbe0;" if (parenthesized_expression "(param_2[0x10] != 1)" ( (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0013cbe0;" goto statement_identifier ;)) (labeled_statement "LAB_0013cf00:\n        param_6[4] = bVar11;" statement_identifier : (expression_statement "param_6[4] = bVar11;" (assignment_expression "param_6[4] = bVar11" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[5] = bVar12;" (assignment_expression "param_6[5] = bVar12" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }" else (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }" { (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" ( (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" else (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" { (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar12 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar12 = (byte)((uint)iVar13 >> 8)" identifier = (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) (expression_statement "bVar10 = (byte)iVar13;" (assignment_expression "bVar10 = (byte)iVar13" identifier = (cast_expression "(byte)iVar13" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar11 = bVar10;" (assignment_expression "bVar11 = bVar10" identifier = identifier) ;) (if_statement "if (param_2[0x10] == 1) goto LAB_0013cf00;" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0013cf00;" goto statement_identifier ;)) (labeled_statement "LAB_0013cbe0:\n        param_6[4] = bVar12;" statement_identifier : (expression_statement "param_6[4] = bVar12;" (assignment_expression "param_6[4] = bVar12" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[5] = bVar10;" (assignment_expression "param_6[5] = bVar10" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 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 "(dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)" ( (comma_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "param_5 + *(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 "dVar2 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }" { (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x10] != 1) goto LAB_0013ca13;" if (parenthesized_expression "(param_2[0x10] != 1)" ( (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0013ca13;" goto statement_identifier ;)) (labeled_statement "LAB_0013cc16:\n        bVar17 = 0;" statement_identifier : (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;)) (expression_statement "param_6[6] = bVar11;" (assignment_expression "param_6[6] = bVar11" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = bVar10;" (assignment_expression "param_6[7] = bVar10" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar15 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar15 = *(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) ))))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;" if (parenthesized_expression "(*(int *)(iVar15 + 0x34) != 4)" ( (binary_expression "*(int *)(iVar15 + 0x34) != 4" (pointer_expression "*(int *)(iVar15 + 0x34)" * (cast_expression "(int *)(iVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x34)" ( (binary_expression "iVar15 + 0x34" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0013ca40;" goto statement_identifier ;)) (labeled_statement "LAB_0013cc36:\n        bVar17 = 0;" statement_identifier : (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;)) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);" (assignment_expression "fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar15 + 0x38) * 8)" ( (binary_expression "param_5 + *(int *)(iVar15 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar15 + 0x38) * 8" (pointer_expression "*(int *)(iVar15 + 0x38)" * (cast_expression "(int *)(iVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x38)" ( (binary_expression "iVar15 + 0x38" identifier + number_literal) )))) * number_literal)) ))))))) ;) (if_statement "if (fVar1 <= 0.0) goto LAB_0013ca40;" if (parenthesized_expression "(fVar1 <= 0.0)" ( (binary_expression "fVar1 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_0013ca40;" goto statement_identifier ;)) (if_statement "if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }" if (parenthesized_expression "(DAT_0029f710 <= fVar1)" ( (binary_expression "DAT_0029f710 <= fVar1" identifier <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" identifier = number_literal) ;) (goto_statement "goto LAB_0013ca40;" goto statement_identifier ;) })) (expression_statement "iVar13 = (int)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "iVar13 = (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 "bVar17 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar17 = (byte)((uint)iVar13 >> 8)" identifier = (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] != 1) goto LAB_0013ca4a;" if (parenthesized_expression "(param_2[0x10] != 1)" ( (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0013ca4a;" goto statement_identifier ;)) (labeled_statement "LAB_0013cca5:\n        param_6[8] = (byte)iVar13;" statement_identifier : (expression_statement "param_6[8] = (byte)iVar13;" (assignment_expression "param_6[8] = (byte)iVar13" (subscript_expression "param_6[8]" identifier [ number_literal ]) = (cast_expression "(byte)iVar13" ( (type_descriptor "byte" type_identifier) ) identifier)) ;)) (expression_statement "param_6[9] = bVar17;" (assignment_expression "param_6[9] = bVar17" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }" else (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }" { (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" ( (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "bVar14 = 0xff;" (assignment_expression "bVar14 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" else (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" { (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar14 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar14 = (byte)((uint)iVar13 >> 8)" identifier = (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) (expression_statement "bVar12 = (byte)iVar13;" (assignment_expression "bVar12 = (byte)iVar13" identifier = (cast_expression "(byte)iVar13" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar11 = bVar12;" (assignment_expression "bVar11 = bVar12" identifier = identifier) ;) (expression_statement "bVar10 = bVar14;" (assignment_expression "bVar10 = bVar14" identifier = identifier) ;) (if_statement "if (param_2[0x10] == 1) goto LAB_0013cc16;" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0013cc16;" goto statement_identifier ;)) (labeled_statement "LAB_0013ca13:\n        bVar17 = 0;" statement_identifier : (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;)) (expression_statement "param_6[6] = bVar14;" (assignment_expression "param_6[6] = bVar14" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = bVar12;" (assignment_expression "param_6[7] = bVar12" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar15 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar15 = *(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) ))))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;" if (parenthesized_expression "(*(int *)(iVar15 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar15 + 0x34) == 4" (pointer_expression "*(int *)(iVar15 + 0x34)" * (cast_expression "(int *)(iVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x34)" ( (binary_expression "iVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0013cc36;" goto statement_identifier ;)) (labeled_statement "LAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;" statement_identifier : (if_statement "if (param_2[0x10] == 1) goto LAB_0013cca5;" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0013cca5;" goto statement_identifier ;))) (labeled_statement "LAB_0013ca4a:\n        param_6[9] = (byte)iVar13;" statement_identifier : (expression_statement "param_6[9] = (byte)iVar13;" (assignment_expression "param_6[9] = (byte)iVar13" (subscript_expression "param_6[9]" identifier [ number_literal ]) = (cast_expression "(byte)iVar13" ( (type_descriptor "byte" type_identifier) ) identifier)) ;)) (expression_statement "param_6[8] = bVar17;" (assignment_expression "param_6[8] = bVar17" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[9] + 10;" (assignment_expression "param_6 = param_6 + param_2[9] + 10" identifier = (binary_expression "param_6 + param_2[9] + 10" (binary_expression "param_6 + param_2[9]" identifier + (subscript_expression "param_2[9]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "param_5 + *(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 (local_64 == param_3) {\n        return;\n      }" if (parenthesized_expression "(local_64 == param_3)" ( (binary_expression "local_64 == param_3" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (uVar16 < 0x11) {\n    if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar16 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }" if (parenthesized_expression "(uVar16 < 0x11)" ( (binary_expression "uVar16 < 0x11" identifier < number_literal) )) (compound_statement "{\n    if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar16 == 0) goto LAB_0013be09;\n  }" { (if_statement "if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }" if (parenthesized_expression "(uVar16 == 8)" ( (binary_expression "uVar16 == 8" identifier == number_literal) )) (compound_statement "{\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }" { (if_statement "if (param_3 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);" do (compound_statement "{\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      }" { (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "param_5 + *(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 "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar2 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" ( (binary_expression "dVar2 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" { (expression_statement "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "*param_6 = bVar11;" (assignment_expression "*param_6 = bVar11" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "param_5 + *(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 "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar2 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" ( (binary_expression "dVar2 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" { (expression_statement "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "param_6[1] = bVar11;" (assignment_expression "param_6[1] = bVar11" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "param_5 + *(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 "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar2 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" ( (binary_expression "dVar2 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" { (expression_statement "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)" (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 "(dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)" ( (comma_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "param_5 + *(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 < dVar2" number_literal < identifier)) ))) )) (compound_statement "{\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar2 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" ( (binary_expression "dVar2 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" { (expression_statement "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "param_6[3] = bVar11;" (assignment_expression "param_6[3] = bVar11" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (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 *)(param_5 + *(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 *)(param_5 + *(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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)" ( (comma_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1" (assignment_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "param_5 + *(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          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (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 "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }" if (parenthesized_expression "(fVar1 < DAT_002a7ff4)" ( (binary_expression "fVar1 < DAT_002a7ff4" identifier < identifier) )) (compound_statement "{\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }" { (expression_statement "bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "bVar11 = (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_6[4] = bVar11;" (assignment_expression "param_6[4] = bVar11" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "param_5 + *(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_6 = param_6 + param_2[9] + 5;" (assignment_expression "param_6 = param_6 + param_2[9] + 5" identifier = (binary_expression "param_6 + param_2[9] + 5" (binary_expression "param_6 + param_2[9]" identifier + (subscript_expression "param_2[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != param_3)" ( (binary_expression "iVar13 != param_3" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0013d3f8:\n    local_4c = 0;" statement_identifier : (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;)) (expression_statement "iStack_48 = 0;" (assignment_expression "iStack_48 = 0" identifier = number_literal) ;) (if_statement "if (uVar16 == 0) goto LAB_0013be09;" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013be09;" goto statement_identifier ;)) }) (else_clause "else {\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }" else (compound_statement "{\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }" { (if_statement "if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" if (parenthesized_expression "(uVar16 == 0x20)" ( (binary_expression "uVar16 == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" { (if_statement "if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }" if (parenthesized_expression "(param_2[2] == 1)" ( (binary_expression "param_2[2] == 1" (subscript_expression "param_2[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }" { (if_statement "if (param_3 < 1) {\n          return;\n        }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);" do (compound_statement "{\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        }" { (expression_statement "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" identifier = (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11)" (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "param_5 + *(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)*(double *)(param_2 + 0x11)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) )))))) + (cast_expression "(float)*(double *)(param_2 + 3)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) ))))))) ;) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (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 "bVar12 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar12 = (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) )))) ;) (expression_statement "bVar10 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar10 = (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) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }" { (expression_statement "*param_6 = SUB41(fVar1,0);" (assignment_expression "*param_6 = SUB41(fVar1,0)" (pointer_expression "*param_6" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[1] = bVar11;" (assignment_expression "param_6[1] = bVar11" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = bVar12;" (assignment_expression "param_6[2] = bVar12" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = bVar10;" (assignment_expression "param_6[3] = bVar10" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }" { (expression_statement "param_6[1] = bVar12;" (assignment_expression "param_6[1] = bVar12" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_6 = bVar10;" (assignment_expression "*param_6 = bVar10" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = SUB41(fVar1,0);" (assignment_expression "param_6[3] = SUB41(fVar1,0)" (subscript_expression "param_6[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" identifier = (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11)" (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "param_5 + *(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)*(double *)(param_2 + 0x11)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) )))))) + (cast_expression "(float)*(double *)(param_2 + 3)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) ))))))) ;) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (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 "bVar10 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar10 = (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 "bVar12 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar12 = (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 (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }" { (expression_statement "param_6[4] = SUB41(fVar1,0);" (assignment_expression "param_6[4] = SUB41(fVar1,0)" (subscript_expression "param_6[4]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[5] = bVar11;" (assignment_expression "param_6[5] = bVar11" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = bVar12;" (assignment_expression "param_6[6] = bVar12" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = bVar10;" (assignment_expression "param_6[7] = bVar10" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }" { (expression_statement "param_6[4] = bVar10;" (assignment_expression "param_6[4] = bVar10" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = bVar11;" (assignment_expression "param_6[6] = bVar11" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[5] = bVar12;" (assignment_expression "param_6[5] = bVar12" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = SUB41(fVar1,0);" (assignment_expression "param_6[7] = SUB41(fVar1,0)" (subscript_expression "param_6[7]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" identifier = (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11)" (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "param_5 + *(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)*(double *)(param_2 + 0x11)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) )))))) + (cast_expression "(float)*(double *)(param_2 + 3)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) ))))))) ;) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (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 "bVar10 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar10 = (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 "bVar12 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar12 = (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 (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }" { (expression_statement "param_6[8] = SUB41(fVar1,0);" (assignment_expression "param_6[8] = SUB41(fVar1,0)" (subscript_expression "param_6[8]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[10] = bVar12;" (assignment_expression "param_6[10] = bVar12" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[9] = bVar11;" (assignment_expression "param_6[9] = bVar11" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = bVar10;" (assignment_expression "param_6[0xb] = bVar10" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }" { (expression_statement "param_6[10] = bVar11;" (assignment_expression "param_6[10] = bVar11" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[8] = bVar10;" (assignment_expression "param_6[8] = bVar10" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[9] = bVar12;" (assignment_expression "param_6[9] = bVar12" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = SUB41(fVar1,0);" (assignment_expression "param_6[0xb] = SUB41(fVar1,0)" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }" else (compound_statement "{\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }" { (expression_statement "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);" (assignment_expression "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "param_5 + *(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)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" identifier = (binary_expression "fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "fVar1 * (float)*(double *)(param_2 + 0x11)" identifier * (cast_expression "(float)*(double *)(param_2 + 0x11)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) )))))) + (cast_expression "(float)*(double *)(param_2 + 3)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) ))))))) ;) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (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 "bVar12 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar12 = (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 "bVar10 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar10 = (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 (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }" { (expression_statement "param_6[0xc] = SUB41(fVar1,0);" (assignment_expression "param_6[0xc] = SUB41(fVar1,0)" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0xe] = bVar10;" (assignment_expression "param_6[0xe] = bVar10" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xd] = bVar11;" (assignment_expression "param_6[0xd] = bVar11" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = bVar12;" (assignment_expression "param_6[0xf] = bVar12" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }" { (expression_statement "param_6[0xe] = bVar11;" (assignment_expression "param_6[0xe] = bVar11" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xc] = bVar12;" (assignment_expression "param_6[0xc] = bVar12" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xd] = bVar10;" (assignment_expression "param_6[0xd] = bVar10" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = SUB41(fVar1,0);" (assignment_expression "param_6[0xf] = SUB41(fVar1,0)" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }" { (expression_statement "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "param_5 + *(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)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" identifier = (binary_expression "fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "fVar1 * (float)*(double *)(param_2 + 0x11)" identifier * (cast_expression "(float)*(double *)(param_2 + 0x11)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) )))))) + (cast_expression "(float)*(double *)(param_2 + 3)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) ))))))) ;) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (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 "bVar12 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar12 = (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 "bVar10 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar10 = (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 (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }" { (expression_statement "param_6[0x10] = SUB41(fVar1,0);" (assignment_expression "param_6[0x10] = SUB41(fVar1,0)" (subscript_expression "param_6[0x10]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0x12] = bVar10;" (assignment_expression "param_6[0x12] = bVar10" (subscript_expression "param_6[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x11] = bVar11;" (assignment_expression "param_6[0x11] = bVar11" (subscript_expression "param_6[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x13] = bVar12;" (assignment_expression "param_6[0x13] = bVar12" (subscript_expression "param_6[0x13]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }" { (expression_statement "param_6[0x12] = bVar11;" (assignment_expression "param_6[0x12] = bVar11" (subscript_expression "param_6[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x10] = bVar12;" (assignment_expression "param_6[0x10] = bVar12" (subscript_expression "param_6[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x11] = bVar10;" (assignment_expression "param_6[0x11] = bVar10" (subscript_expression "param_6[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x13] = SUB41(fVar1,0);" (assignment_expression "param_6[0x13] = SUB41(fVar1,0)" (subscript_expression "param_6[0x13]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[9] + 0x14;" (assignment_expression "param_6 = param_6 + param_2[9] + 0x14" identifier = (binary_expression "param_6 + param_2[9] + 0x14" (binary_expression "param_6 + param_2[9]" identifier + (subscript_expression "param_2[9]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "param_5 + *(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))) ;) }) while (parenthesized_expression "(local_64 != param_3)" ( (binary_expression "local_64 != param_3" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if (param_3 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);" do (compound_statement "{\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      }" { (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "param_5 + *(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 (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }" else (compound_statement "{\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }" { (expression_statement "dVar2 = dVar2 * (double)DAT_002a7fec;" (assignment_expression "dVar2 = dVar2 * (double)DAT_002a7fec" identifier = (binary_expression "dVar2 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }" if (parenthesized_expression "(dVar5 <= dVar2)" ( (binary_expression "dVar5 <= dVar2" identifier <= identifier) )) (compound_statement "{\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }" { (expression_statement "local_34 = 0xff;" (assignment_expression "local_34 = 0xff" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_34 = (byte)lVar3;" (assignment_expression "local_34 = (byte)lVar3" identifier = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar10 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar10 = (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 "bVar11 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar11 = (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) )))) ;) (expression_statement "bVar12 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar12 = (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) )))) ;) }))) }))) (if_statement "if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }" { (expression_statement "param_6[1] = bVar12;" (assignment_expression "param_6[1] = bVar12" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_6 = local_34;" (assignment_expression "*param_6 = local_34" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = bVar10;" (assignment_expression "param_6[3] = bVar10" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }" else (compound_statement "{\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }" { (expression_statement "param_6[2] = bVar12;" (assignment_expression "param_6[2] = bVar12" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_6 = bVar10;" (assignment_expression "*param_6 = bVar10" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[3] = local_34;" (assignment_expression "param_6[3] = local_34" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[1] = bVar11;" (assignment_expression "param_6[1] = bVar11" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "param_5 + *(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 (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" else (compound_statement "{\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" { (expression_statement "dVar2 = dVar2 * (double)DAT_002a7fec;" (assignment_expression "dVar2 = dVar2 * (double)DAT_002a7fec" identifier = (binary_expression "dVar2 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" if (parenthesized_expression "(DAT_002a8000 <= dVar2)" ( (binary_expression "DAT_002a8000 <= dVar2" identifier <= identifier) )) (compound_statement "{\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }" { (expression_statement "local_34 = 0xff;" (assignment_expression "local_34 = 0xff" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_34 = (byte)lVar3;" (assignment_expression "local_34 = (byte)lVar3" identifier = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar12 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar12 = (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 "bVar10 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar10 = (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 "bVar11 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar11 = (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 (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }" { (expression_statement "param_6[4] = local_34;" (assignment_expression "param_6[4] = local_34" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = bVar11;" (assignment_expression "param_6[6] = bVar11" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[5] = bVar12;" (assignment_expression "param_6[5] = bVar12" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = bVar10;" (assignment_expression "param_6[7] = bVar10" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }" else (compound_statement "{\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }" { (expression_statement "param_6[4] = bVar10;" (assignment_expression "param_6[4] = bVar10" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[5] = bVar11;" (assignment_expression "param_6[5] = bVar11" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = bVar12;" (assignment_expression "param_6[6] = bVar12" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = local_34;" (assignment_expression "param_6[7] = local_34" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "param_5 + *(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 (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" else (compound_statement "{\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" { (expression_statement "dVar2 = dVar2 * (double)DAT_002a7fec;" (assignment_expression "dVar2 = dVar2 * (double)DAT_002a7fec" identifier = (binary_expression "dVar2 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" if (parenthesized_expression "(DAT_002a8000 <= dVar2)" ( (binary_expression "DAT_002a8000 <= dVar2" identifier <= identifier) )) (compound_statement "{\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }" { (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (expression_statement "bVar14 = 0xff;" (assignment_expression "bVar14 = 0xff" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar14 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar14 = (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 "bVar11 = (byte)lVar3;" (assignment_expression "bVar11 = (byte)lVar3" identifier = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar10 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar10 = (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 "bVar12 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar12 = (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 (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }" { (expression_statement "param_6[10] = bVar12;" (assignment_expression "param_6[10] = bVar12" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = bVar10;" (assignment_expression "param_6[0xb] = bVar10" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[8] = bVar11;" (assignment_expression "param_6[8] = bVar11" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[9] = bVar14;" (assignment_expression "param_6[9] = bVar14" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }" else (compound_statement "{\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }" { (expression_statement "param_6[9] = bVar12;" (assignment_expression "param_6[9] = bVar12" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[10] = bVar14;" (assignment_expression "param_6[10] = bVar14" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[8] = bVar10;" (assignment_expression "param_6[8] = bVar10" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = bVar11;" (assignment_expression "param_6[0xb] = bVar11" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 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 "(dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)" ( (comma_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "param_5 + *(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 "dVar2 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" else (compound_statement "{\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" { (expression_statement "dVar2 = dVar2 * (double)DAT_002a7fec;" (assignment_expression "dVar2 = dVar2 * (double)DAT_002a7fec" identifier = (binary_expression "dVar2 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" if (parenthesized_expression "(DAT_002a8000 <= dVar2)" ( (binary_expression "DAT_002a8000 <= dVar2" identifier <= identifier) )) (compound_statement "{\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }" { (expression_statement "local_34 = 0xff;" (assignment_expression "local_34 = 0xff" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_34 = (byte)lVar3;" (assignment_expression "local_34 = (byte)lVar3" identifier = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar12 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar12 = (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 "bVar10 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar10 = (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 "bVar11 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar11 = (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 (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }" { (expression_statement "param_6[0xc] = local_34;" (assignment_expression "param_6[0xc] = local_34" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xe] = bVar11;" (assignment_expression "param_6[0xe] = bVar11" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xd] = bVar12;" (assignment_expression "param_6[0xd] = bVar12" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = bVar10;" (assignment_expression "param_6[0xf] = bVar10" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }" else (compound_statement "{\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }" { (expression_statement "param_6[0xc] = bVar10;" (assignment_expression "param_6[0xc] = bVar10" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xd] = bVar11;" (assignment_expression "param_6[0xd] = bVar11" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xe] = bVar12;" (assignment_expression "param_6[0xe] = bVar12" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = local_34;" (assignment_expression "param_6[0xf] = local_34" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 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 "(fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)" ( (comma_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0" (assignment_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "param_5 + *(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 "fVar1 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" else (compound_statement "{\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" { (expression_statement "fVar1 = fVar1 * DAT_002a7fec;" (assignment_expression "fVar1 = fVar1 * DAT_002a7fec" identifier = (binary_expression "fVar1 * DAT_002a7fec" identifier * identifier)) ;) (if_statement "if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" if (parenthesized_expression "((float)DAT_002a8000 <= fVar1)" ( (binary_expression "(float)DAT_002a8000 <= fVar1" (cast_expression "(float)DAT_002a8000" ( (type_descriptor "float" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }" { (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (expression_statement "bVar14 = 0xff;" (assignment_expression "bVar14 = 0xff" identifier = number_literal) ;) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(fVar1 + DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(fVar1 + DAT_0029f124)" identifier (argument_list "(fVar1 + DAT_0029f124)" ( (binary_expression "fVar1 + DAT_0029f124" identifier + identifier) ))))) ;) (expression_statement "bVar14 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar14 = (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 "bVar11 = (byte)lVar3;" (assignment_expression "bVar11 = (byte)lVar3" identifier = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar12 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar12 = (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 "bVar10 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar10 = (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 (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }" { (expression_statement "param_6[0x12] = bVar10;" (assignment_expression "param_6[0x12] = bVar10" (subscript_expression "param_6[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x13] = bVar12;" (assignment_expression "param_6[0x13] = bVar12" (subscript_expression "param_6[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x10] = bVar11;" (assignment_expression "param_6[0x10] = bVar11" (subscript_expression "param_6[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x11] = bVar14;" (assignment_expression "param_6[0x11] = bVar14" (subscript_expression "param_6[0x11]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }" else (compound_statement "{\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }" { (expression_statement "param_6[0x11] = bVar10;" (assignment_expression "param_6[0x11] = bVar10" (subscript_expression "param_6[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x12] = bVar14;" (assignment_expression "param_6[0x12] = bVar14" (subscript_expression "param_6[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x10] = bVar12;" (assignment_expression "param_6[0x10] = bVar12" (subscript_expression "param_6[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x13] = bVar11;" (assignment_expression "param_6[0x13] = bVar11" (subscript_expression "param_6[0x13]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[9] + 0x14;" (assignment_expression "param_6 = param_6 + param_2[9] + 0x14" identifier = (binary_expression "param_6 + param_2[9] + 0x14" (binary_expression "param_6 + param_2[9]" identifier + (subscript_expression "param_2[9]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "param_5 + *(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))) ;) }) while (parenthesized_expression "(local_64 != param_3)" ( (binary_expression "local_64 != param_3" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar16 != 0x40) goto LAB_0013d3f8;" if (parenthesized_expression "(uVar16 != 0x40)" ( (binary_expression "uVar16 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_0013d3f8;" goto statement_identifier ;)) (if_statement "if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" if (parenthesized_expression "(param_2[2] == 1)" ( (binary_expression "param_2[2] == 1" (subscript_expression "param_2[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" { (if_statement "if (param_3 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);" do (compound_statement "{\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      }" { (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" identifier = (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11)" (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "param_5 + *(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)) )))) * (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) )))))) ;) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }" { (expression_statement "*param_6 = SUB81(dVar2,0);" (assignment_expression "*param_6 = SUB81(dVar2,0)" (pointer_expression "*param_6" * identifier) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[4] = bVar10;" (assignment_expression "param_6[4] = bVar10" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[5] = bVar11;" (assignment_expression "param_6[5] = bVar11" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[1] = local_8c;" (assignment_expression "param_6[1] = local_8c" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = local_6c;" (assignment_expression "param_6[2] = local_6c" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = local_74;" (assignment_expression "param_6[3] = local_74" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = local_7c;" (assignment_expression "param_6[6] = local_7c" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = local_84;" (assignment_expression "param_6[7] = local_84" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }" else (compound_statement "{\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }" { (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = bVar10;" (assignment_expression "param_6[3] = bVar10" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = SUB81(dVar2,0);" (assignment_expression "param_6[7] = SUB81(dVar2,0)" (subscript_expression "param_6[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[4] = local_74;" (assignment_expression "param_6[4] = local_74" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_6 = local_84;" (assignment_expression "*param_6 = local_84" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[5] = local_6c;" (assignment_expression "param_6[5] = local_6c" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[1] = local_7c;" (assignment_expression "param_6[1] = local_7c" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = local_8c;" (assignment_expression "param_6[6] = local_8c" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" identifier = (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11)" (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "param_5 + *(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)) )))) * (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) )))))) ;) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }" { (expression_statement "param_6[8] = SUB81(dVar2,0);" (assignment_expression "param_6[8] = SUB81(dVar2,0)" (subscript_expression "param_6[8]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0xc] = bVar10;" (assignment_expression "param_6[0xc] = bVar10" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xd] = bVar11;" (assignment_expression "param_6[0xd] = bVar11" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[9] = local_8c;" (assignment_expression "param_6[9] = local_8c" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xe] = local_7c;" (assignment_expression "param_6[0xe] = local_7c" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = local_84;" (assignment_expression "param_6[0xf] = local_84" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[10] = local_6c;" (assignment_expression "param_6[10] = local_6c" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = local_74;" (assignment_expression "param_6[0xb] = local_74" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }" else (compound_statement "{\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }" { (expression_statement "param_6[0xb] = bVar10;" (assignment_expression "param_6[0xb] = bVar10" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[10] = bVar11;" (assignment_expression "param_6[10] = bVar11" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = SUB81(dVar2,0);" (assignment_expression "param_6[0xf] = SUB81(dVar2,0)" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0xc] = local_74;" (assignment_expression "param_6[0xc] = local_74" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[8] = local_84;" (assignment_expression "param_6[8] = local_84" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xd] = local_6c;" (assignment_expression "param_6[0xd] = local_6c" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[9] = local_7c;" (assignment_expression "param_6[9] = local_7c" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xe] = local_8c;" (assignment_expression "param_6[0xe] = local_8c" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" identifier = (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11)" (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "param_5 + *(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)) )))) * (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) )))))) ;) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }" { (expression_statement "param_6[0x14] = bVar11;" (assignment_expression "param_6[0x14] = bVar11" (subscript_expression "param_6[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x10] = SUB81(dVar2,0);" (assignment_expression "param_6[0x10] = SUB81(dVar2,0)" (subscript_expression "param_6[0x10]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0x11] = local_8c;" (assignment_expression "param_6[0x11] = local_8c" (subscript_expression "param_6[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x12] = local_6c;" (assignment_expression "param_6[0x12] = local_6c" (subscript_expression "param_6[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x13] = local_74;" (assignment_expression "param_6[0x13] = local_74" (subscript_expression "param_6[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x15] = bVar10;" (assignment_expression "param_6[0x15] = bVar10" (subscript_expression "param_6[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x16] = local_7c;" (assignment_expression "param_6[0x16] = local_7c" (subscript_expression "param_6[0x16]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x17] = local_84;" (assignment_expression "param_6[0x17] = local_84" (subscript_expression "param_6[0x17]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }" else (compound_statement "{\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }" { (expression_statement "param_6[0x13] = bVar11;" (assignment_expression "param_6[0x13] = bVar11" (subscript_expression "param_6[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x17] = SUB81(dVar2,0);" (assignment_expression "param_6[0x17] = SUB81(dVar2,0)" (subscript_expression "param_6[0x17]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0x10] = local_84;" (assignment_expression "param_6[0x10] = local_84" (subscript_expression "param_6[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x11] = local_7c;" (assignment_expression "param_6[0x11] = local_7c" (subscript_expression "param_6[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x12] = bVar10;" (assignment_expression "param_6[0x12] = bVar10" (subscript_expression "param_6[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x14] = local_74;" (assignment_expression "param_6[0x14] = local_74" (subscript_expression "param_6[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x15] = local_6c;" (assignment_expression "param_6[0x15] = local_6c" (subscript_expression "param_6[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x16] = local_8c;" (assignment_expression "param_6[0x16] = local_8c" (subscript_expression "param_6[0x16]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(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          dVar2 = 0.0;\n        }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }" else (compound_statement "{\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }" { (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "param_5 + *(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 "dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" identifier = (binary_expression "dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "dVar2 * *(double *)(param_2 + 0x11)" identifier * (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) )))))) ;) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }" { (expression_statement "param_6[0x1c] = bVar11;" (assignment_expression "param_6[0x1c] = bVar11" (subscript_expression "param_6[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1d] = bVar10;" (assignment_expression "param_6[0x1d] = bVar10" (subscript_expression "param_6[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x18] = SUB81(dVar2,0);" (assignment_expression "param_6[0x18] = SUB81(dVar2,0)" (subscript_expression "param_6[0x18]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0x19] = local_8c;" (assignment_expression "param_6[0x19] = local_8c" (subscript_expression "param_6[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1e] = local_7c;" (assignment_expression "param_6[0x1e] = local_7c" (subscript_expression "param_6[0x1e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1a] = local_6c;" (assignment_expression "param_6[0x1a] = local_6c" (subscript_expression "param_6[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1b] = local_74;" (assignment_expression "param_6[0x1b] = local_74" (subscript_expression "param_6[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1f] = local_84;" (assignment_expression "param_6[0x1f] = local_84" (subscript_expression "param_6[0x1f]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }" else (compound_statement "{\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }" { (expression_statement "param_6[0x1b] = bVar11;" (assignment_expression "param_6[0x1b] = bVar11" (subscript_expression "param_6[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1f] = SUB81(dVar2,0);" (assignment_expression "param_6[0x1f] = SUB81(dVar2,0)" (subscript_expression "param_6[0x1f]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0x1c] = local_74;" (assignment_expression "param_6[0x1c] = local_74" (subscript_expression "param_6[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x18] = local_84;" (assignment_expression "param_6[0x18] = local_84" (subscript_expression "param_6[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1d] = local_6c;" (assignment_expression "param_6[0x1d] = local_6c" (subscript_expression "param_6[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x19] = local_7c;" (assignment_expression "param_6[0x19] = local_7c" (subscript_expression "param_6[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1a] = bVar10;" (assignment_expression "param_6[0x1a] = bVar10" (subscript_expression "param_6[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1e] = local_8c;" (assignment_expression "param_6[0x1e] = local_8c" (subscript_expression "param_6[0x1e]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 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          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }" { (expression_statement "dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "(double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "param_5 + *(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          dVar2 = 0.0;\n        }" else (compound_statement "{\n          dVar2 = 0.0;\n        }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" identifier = (binary_expression "dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "dVar2 * *(double *)(param_2 + 0x11)" identifier * (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) )))))) ;) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }" { (expression_statement "param_6[0x20] = SUB81(dVar2,0);" (assignment_expression "param_6[0x20] = SUB81(dVar2,0)" (subscript_expression "param_6[0x20]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0x24] = bVar11;" (assignment_expression "param_6[0x24] = bVar11" (subscript_expression "param_6[0x24]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x21] = local_8c;" (assignment_expression "param_6[0x21] = local_8c" (subscript_expression "param_6[0x21]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x22] = local_6c;" (assignment_expression "param_6[0x22] = local_6c" (subscript_expression "param_6[0x22]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x23] = local_74;" (assignment_expression "param_6[0x23] = local_74" (subscript_expression "param_6[0x23]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x25] = bVar10;" (assignment_expression "param_6[0x25] = bVar10" (subscript_expression "param_6[0x25]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x26] = local_7c;" (assignment_expression "param_6[0x26] = local_7c" (subscript_expression "param_6[0x26]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x27] = local_84;" (assignment_expression "param_6[0x27] = local_84" (subscript_expression "param_6[0x27]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }" else (compound_statement "{\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }" { (expression_statement "param_6[0x23] = bVar11;" (assignment_expression "param_6[0x23] = bVar11" (subscript_expression "param_6[0x23]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x27] = SUB81(dVar2,0);" (assignment_expression "param_6[0x27] = SUB81(dVar2,0)" (subscript_expression "param_6[0x27]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0x20] = local_84;" (assignment_expression "param_6[0x20] = local_84" (subscript_expression "param_6[0x20]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x21] = local_7c;" (assignment_expression "param_6[0x21] = local_7c" (subscript_expression "param_6[0x21]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x22] = bVar10;" (assignment_expression "param_6[0x22] = bVar10" (subscript_expression "param_6[0x22]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x24] = local_74;" (assignment_expression "param_6[0x24] = local_74" (subscript_expression "param_6[0x24]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x25] = local_6c;" (assignment_expression "param_6[0x25] = local_6c" (subscript_expression "param_6[0x25]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x26] = local_8c;" (assignment_expression "param_6[0x26] = local_8c" (subscript_expression "param_6[0x26]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[9] + 0x28;" (assignment_expression "param_6 = param_6 + param_2[9] + 0x28" identifier = (binary_expression "param_6 + param_2[9] + 0x28" (binary_expression "param_6 + param_2[9]" identifier + (subscript_expression "param_2[9]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "param_5 + *(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))) ;) }) while (parenthesized_expression "(local_64 != param_3)" ( (binary_expression "local_64 != param_3" identifier != identifier) )) ;) (return_statement "return;" return ;) })) }))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (if_statement "if (uVar16 < 0x41) {\n    uVar9 = uVar16;\n  }" if (parenthesized_expression "(uVar16 < 0x41)" ( (binary_expression "uVar16 < 0x41" identifier < number_literal) )) (compound_statement "{\n    uVar9 = uVar16;\n  }" { (expression_statement "uVar9 = uVar16;" (assignment_expression "uVar9 = uVar16" identifier = identifier) ;) })) (expression_statement "bVar10 = (byte)(uVar9 - 1);" (assignment_expression "bVar10 = (byte)(uVar9 - 1)" identifier = (call_expression "(byte)(uVar9 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar9 - 1)" ( (binary_expression "uVar9 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar11 = bVar10 & 0x1f;" (assignment_expression "bVar11 = bVar10 & 0x1f" identifier = (binary_expression "bVar10 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar7 = 2 << (bVar10 & 0x1f);" (assignment_expression "uVar7 = 2 << (bVar10 & 0x1f)" identifier = (binary_expression "2 << (bVar10 & 0x1f)" number_literal << (parenthesized_expression "(bVar10 & 0x1f)" ( (binary_expression "bVar10 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" identifier = identifier) ;) (expression_statement "uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11;" (assignment_expression "uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11" identifier = (binary_expression "0 << bVar11 | 2U >> 0x20 - bVar11" (binary_expression "0 << bVar11" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar11" number_literal >> (binary_expression "0x20 - bVar11" number_literal - identifier)))) ;) (if_statement "if ((uVar9 - 1 & 0x20) != 0) {\n    uVar8 = 0;\n    uVar18 = uVar7;\n  }" if (parenthesized_expression "((uVar9 - 1 & 0x20) != 0)" ( (binary_expression "(uVar9 - 1 & 0x20) != 0" (parenthesized_expression "(uVar9 - 1 & 0x20)" ( (binary_expression "uVar9 - 1 & 0x20" (binary_expression "uVar9 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar8 = 0;\n    uVar18 = uVar7;\n  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar7;" (assignment_expression "uVar18 = uVar7" identifier = identifier) ;) })) (expression_statement "local_4c = uVar8 - 1;" (assignment_expression "local_4c = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0);" (assignment_expression "iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0)" identifier = (binary_expression "(uVar18 - 1) + (uint)(uVar8 != 0)" (parenthesized_expression "(uVar18 - 1)" ( (binary_expression "uVar18 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar8 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) ))))) ;) (labeled_statement "LAB_0013be09:\n  if (param_3 < 1) {\n    return;\n  }" statement_identifier : (if_statement "if (param_3 < 1) {\n    return;\n  }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (do_statement "do {\n    local_5c = 0;\n    iVar13 = *(int *)(param_1 + 0x2a8);\n    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);\n    if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar9 = param_2[0x14];\n    if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }\n    while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n    param_6 = param_6 + param_2[9];\n    if (local_40 == param_3) {\n      return;\n    }\n    uVar16 = *param_2;\n  } while( true );" do (compound_statement "{\n    local_5c = 0;\n    iVar13 = *(int *)(param_1 + 0x2a8);\n    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);\n    if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar9 = param_2[0x14];\n    if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }\n    while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n    param_6 = param_6 + param_2[9];\n    if (local_40 == param_3) {\n      return;\n    }\n    uVar16 = *param_2;\n  }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 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) ))))) ;) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 8) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar13 + 8) * 8)" ( (binary_expression "param_5 + *(int *)(iVar13 + 8) * 8" identifier + (binary_expression "*(int *)(iVar13 + 8) * 8" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 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_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar2) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar2)" ( (binary_expression "(double)fVar1 * dVar2" (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 (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }" if (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" ( (binary_expression "dVar2 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }" { (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" identifier = (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" ( (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" identifier (argument_list "(dVar2 - (double)DAT_0029f134)" ( (binary_expression "dVar2 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (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) ))) + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n          local_5c = (longlong)ROUND(dVar2);\n        }" else (compound_statement "{\n          local_5c = (longlong)ROUND(dVar2);\n        }" { (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" identifier = (cast_expression "(longlong)ROUND(dVar2)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" identifier = (subscript_expression "param_2[0x14]" identifier [ number_literal ])) ;) (if_statement "if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }" { (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) })) (if_statement "if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 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      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }" { (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x14) * 8)" ( (binary_expression "param_5 + *(int *)(iVar13 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (!NAN(dVar2)) goto LAB_0013bffe;" if (parenthesized_expression "(!NAN(dVar2))" ( (unary_expression "!NAN(dVar2)" ! (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))) )) (goto_statement "goto LAB_0013bffe;" goto statement_identifier ;)) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);" do (compound_statement "{\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      }" { (while_statement "while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }" { (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }" if (parenthesized_expression "(uVar16 <= uVar9)" ( (binary_expression "uVar16 <= uVar9" identifier <= identifier) )) (compound_statement "{\n            uVar18 = uVar16;\n          }" { (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar8 = uVar16 - uVar18;" (assignment_expression "uVar8 = uVar16 - uVar18" identifier = (binary_expression "uVar16 - uVar18" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }" if (parenthesized_expression "(-1 < (int)uVar8)" ( (binary_expression "-1 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar16 = uVar8;\n          }" { (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" identifier = identifier) ;) })) (if_statement "if (uVar9 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar9 == 8)" ( (binary_expression "uVar9 == 8" identifier == number_literal) )) (compound_statement "{\n            *param_6 = 0;\n          }" { (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) })) (expression_statement "uVar9 = uVar9 - uVar18;" (assignment_expression "uVar9 = uVar9 - uVar18" identifier = (binary_expression "uVar9 - uVar18" identifier - identifier)) ;) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" identifier = (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar11" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._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            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" { (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._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 "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7)" ( (binary_expression "~(-1 << ((byte)uVar18 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar18 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar18 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar18 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar18 & 0x1f)" ( (binary_expression "(byte)uVar18 & 0x1f" (cast_expression "(byte)uVar18" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar9 & 0x1f)" ( (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }" if (parenthesized_expression "((uVar9 & 0x20) != 0)" ( (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" ( (binary_expression "uVar9 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar11 = 0;\n          }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" * identifier) = (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" * identifier) | identifier)) ;) (if_statement "if (uVar9 != 0) break;" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" identifier = (binary_expression "param_6 + 1" identifier + number_literal)) ;) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar8 < 1) goto LAB_0013bfd2;" if (parenthesized_expression "((int)uVar8 < 1)" ( (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013bfd2;" goto statement_identifier ;)) })) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" identifier = (subscript_expression "param_2[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);" statement_identifier : (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) ))))) ;)) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x14) * 8)" ( (binary_expression "param_5 + *(int *)(iVar13 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(NAN(dVar2))" ( (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))) )) (compound_statement "{\n        local_5c = 0;\n      }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" else (compound_statement "{\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013bffe:\n        local_5c = 0;" statement_identifier : (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 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_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar2) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar2)" ( (binary_expression "(double)fVar1 * dVar2" (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 (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" ( (binary_expression "dVar2 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" { (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" identifier = (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" ( (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" identifier (argument_list "(dVar2 - (double)DAT_0029f134)" ( (binary_expression "dVar2 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (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) ))) + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" else (compound_statement "{\n              local_5c = (longlong)ROUND(dVar2);\n            }" { (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" identifier = (cast_expression "(longlong)ROUND(dVar2)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" { (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 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      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }" { (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x20) * 8)" ( (binary_expression "param_5 + *(int *)(iVar13 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (!NAN(dVar2)) goto LAB_0013c1b8;" if (parenthesized_expression "(!NAN(dVar2))" ( (unary_expression "!NAN(dVar2)" ! (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))) )) (goto_statement "goto LAB_0013c1b8;" goto statement_identifier ;)) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);" do (compound_statement "{\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      }" { (while_statement "while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }" { (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }" if (parenthesized_expression "(uVar16 <= uVar9)" ( (binary_expression "uVar16 <= uVar9" identifier <= identifier) )) (compound_statement "{\n            uVar18 = uVar16;\n          }" { (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar8 = uVar16 - uVar18;" (assignment_expression "uVar8 = uVar16 - uVar18" identifier = (binary_expression "uVar16 - uVar18" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }" if (parenthesized_expression "(-1 < (int)uVar8)" ( (binary_expression "-1 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar16 = uVar8;\n          }" { (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" identifier = identifier) ;) })) (if_statement "if (uVar9 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar9 == 8)" ( (binary_expression "uVar9 == 8" identifier == number_literal) )) (compound_statement "{\n            *param_6 = 0;\n          }" { (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) })) (expression_statement "uVar9 = uVar9 - uVar18;" (assignment_expression "uVar9 = uVar9 - uVar18" identifier = (binary_expression "uVar9 - uVar18" identifier - identifier)) ;) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" identifier = (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar11" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._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            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" { (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._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 "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7)" ( (binary_expression "~(-1 << ((byte)uVar18 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar18 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar18 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar18 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar18 & 0x1f)" ( (binary_expression "(byte)uVar18 & 0x1f" (cast_expression "(byte)uVar18" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar9 & 0x1f)" ( (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }" if (parenthesized_expression "((uVar9 & 0x20) != 0)" ( (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" ( (binary_expression "uVar9 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar11 = 0;\n          }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" * identifier) = (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" * identifier) | identifier)) ;) (if_statement "if (uVar9 != 0) break;" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" identifier = (binary_expression "param_6 + 1" identifier + number_literal)) ;) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar8 < 1) goto LAB_0013c18c;" if (parenthesized_expression "((int)uVar8 < 1)" ( (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013c18c;" goto statement_identifier ;)) })) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" identifier = (subscript_expression "param_2[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);" statement_identifier : (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) ))))) ;)) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x20) * 8)" ( (binary_expression "param_5 + *(int *)(iVar13 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(NAN(dVar2))" ( (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))) )) (compound_statement "{\n        local_5c = 0;\n      }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" else (compound_statement "{\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013c1b8:\n        local_5c = 0;" statement_identifier : (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 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_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar2) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar2)" ( (binary_expression "(double)fVar1 * dVar2" (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 (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" ( (binary_expression "dVar2 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" { (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" identifier = (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" ( (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" identifier (argument_list "(dVar2 - (double)DAT_0029f134)" ( (binary_expression "dVar2 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (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) ))) + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" else (compound_statement "{\n              local_5c = (longlong)ROUND(dVar2);\n            }" { (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" identifier = (cast_expression "(longlong)ROUND(dVar2)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" { (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 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_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;" if (parenthesized_expression "(*(int *)(iVar13 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar13 + 0x28) != 0" (pointer_expression "*(int *)(iVar13 + 0x28)" * (cast_expression "(int *)(iVar13 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x28)" ( (binary_expression "iVar13 + 0x28" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0013c36e;" goto statement_identifier ;)) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);" do (compound_statement "{\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      }" { (while_statement "while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }" { (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }" if (parenthesized_expression "(uVar16 <= uVar9)" ( (binary_expression "uVar16 <= uVar9" identifier <= identifier) )) (compound_statement "{\n            uVar18 = uVar16;\n          }" { (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar8 = uVar16 - uVar18;" (assignment_expression "uVar8 = uVar16 - uVar18" identifier = (binary_expression "uVar16 - uVar18" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }" if (parenthesized_expression "(-1 < (int)uVar8)" ( (binary_expression "-1 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar16 = uVar8;\n          }" { (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" identifier = identifier) ;) })) (if_statement "if (uVar9 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar9 == 8)" ( (binary_expression "uVar9 == 8" identifier == number_literal) )) (compound_statement "{\n            *param_6 = 0;\n          }" { (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) })) (expression_statement "uVar9 = uVar9 - uVar18;" (assignment_expression "uVar9 = uVar9 - uVar18" identifier = (binary_expression "uVar9 - uVar18" identifier - identifier)) ;) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" identifier = (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar11" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._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            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" { (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._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 "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7)" ( (binary_expression "~(-1 << ((byte)uVar18 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar18 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar18 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar18 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar18 & 0x1f)" ( (binary_expression "(byte)uVar18 & 0x1f" (cast_expression "(byte)uVar18" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar9 & 0x1f)" ( (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }" if (parenthesized_expression "((uVar9 & 0x20) != 0)" ( (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" ( (binary_expression "uVar9 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar11 = 0;\n          }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" * identifier) = (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" * identifier) | identifier)) ;) (if_statement "if (uVar9 != 0) break;" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" identifier = (binary_expression "param_6 + 1" identifier + number_literal)) ;) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar8 < 1) goto LAB_0013c33c;" if (parenthesized_expression "((int)uVar8 < 1)" ( (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013c33c;" goto statement_identifier ;)) })) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" identifier = (subscript_expression "param_2[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0013c33c:\n      local_5c = 0;" statement_identifier : (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 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) ))))) ;) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar13 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar13 + 0x28) != 0" (pointer_expression "*(int *)(iVar13 + 0x28)" * (cast_expression "(int *)(iVar13 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x28)" ( (binary_expression "iVar13 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);" statement_identifier : (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x2c) * 8)" ( (binary_expression "param_5 + *(int *)(iVar13 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x2c) * 8" (pointer_expression "*(int *)(iVar13 + 0x2c)" * (cast_expression "(int *)(iVar13 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x2c)" ( (binary_expression "iVar13 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;)) (if_statement "if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          local_5c = 0;\n        }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" else (compound_statement "{\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 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_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar2) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar2)" ( (binary_expression "(double)fVar1 * dVar2" (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 (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" ( (binary_expression "dVar2 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" { (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" identifier = (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" ( (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" identifier (argument_list "(dVar2 - (double)DAT_0029f134)" ( (binary_expression "dVar2 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (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) ))) + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" else (compound_statement "{\n              local_5c = (longlong)ROUND(dVar2);\n            }" { (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" identifier = (cast_expression "(longlong)ROUND(dVar2)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))))) ;) }))) })) }))) })) (if_statement "if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" { (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 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_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) (if_statement "if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;" if (parenthesized_expression "(*(int *)(iVar13 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar13 + 0x34) == 4" (pointer_expression "*(int *)(iVar13 + 0x34)" * (cast_expression "(int *)(iVar13 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x34)" ( (binary_expression "iVar13 + 0x34" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0013ccd8;" goto statement_identifier ;)) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);" do (compound_statement "{\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      }" { (while_statement "while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }" { (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }" if (parenthesized_expression "(uVar16 <= uVar9)" ( (binary_expression "uVar16 <= uVar9" identifier <= identifier) )) (compound_statement "{\n            uVar18 = uVar16;\n          }" { (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar8 = uVar16 - uVar18;" (assignment_expression "uVar8 = uVar16 - uVar18" identifier = (binary_expression "uVar16 - uVar18" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }" if (parenthesized_expression "(-1 < (int)uVar8)" ( (binary_expression "-1 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar16 = uVar8;\n          }" { (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" identifier = identifier) ;) })) (if_statement "if (uVar9 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar9 == 8)" ( (binary_expression "uVar9 == 8" identifier == number_literal) )) (compound_statement "{\n            *param_6 = 0;\n          }" { (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) })) (expression_statement "uVar9 = uVar9 - uVar18;" (assignment_expression "uVar9 = uVar9 - uVar18" identifier = (binary_expression "uVar9 - uVar18" identifier - identifier)) ;) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" identifier = (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar11" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._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            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" { (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._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 "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7)" ( (binary_expression "~(-1 << ((byte)uVar18 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar18 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar18 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar18 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar18 & 0x1f)" ( (binary_expression "(byte)uVar18 & 0x1f" (cast_expression "(byte)uVar18" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar9 & 0x1f)" ( (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }" if (parenthesized_expression "((uVar9 & 0x20) != 0)" ( (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" ( (binary_expression "uVar9 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar11 = 0;\n          }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" * identifier) = (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" * identifier) | identifier)) ;) (if_statement "if (uVar9 != 0) break;" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" identifier = (binary_expression "param_6 + 1" identifier + number_literal)) ;) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar8 < 1) goto LAB_0013c4f4;" if (parenthesized_expression "((int)uVar8 < 1)" ( (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013c4f4;" goto statement_identifier ;)) })) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" identifier = (subscript_expression "param_2[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0013c4f4:\n      local_5c = 0;" statement_identifier : (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 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) ))))) ;) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar13 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar13 + 0x34) == 4" (pointer_expression "*(int *)(iVar13 + 0x34)" * (cast_expression "(int *)(iVar13 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x34)" ( (binary_expression "iVar13 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);" statement_identifier : (expression_statement "fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);" (assignment_expression "fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x38) * 8)" ( (binary_expression "param_5 + *(int *)(iVar13 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x38) * 8" (pointer_expression "*(int *)(iVar13 + 0x38)" * (cast_expression "(int *)(iVar13 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x38)" ( (binary_expression "iVar13 + 0x38" identifier + number_literal) )))) * number_literal)) ))))))) ;)) (if_statement "if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }" if (parenthesized_expression "(fVar1 <= 0.0)" ( (binary_expression "fVar1 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          local_5c = 0;\n        }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }" else (compound_statement "{\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }" { (expression_statement "fVar4 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar4 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 0" identifier < number_literal) )) (compound_statement "{\n            fVar4 = fVar4 + DAT_0029f714;\n          }" { (expression_statement "fVar4 = fVar4 + DAT_0029f714;" (assignment_expression "fVar4 = fVar4 + DAT_0029f714" identifier = (binary_expression "fVar4 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "fVar1 = (fVar4 * fVar1) / DAT_0029f710;" (assignment_expression "fVar1 = (fVar4 * fVar1) / DAT_0029f710" identifier = (binary_expression "(fVar4 * fVar1) / DAT_0029f710" (parenthesized_expression "(fVar4 * fVar1)" ( (binary_expression "fVar4 * fVar1" identifier * identifier) )) / identifier)) ;) (if_statement "if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (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              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (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              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }" if (parenthesized_expression "(DAT_0029f134 <= fVar1)" ( (binary_expression "DAT_0029f134 <= fVar1" identifier <= identifier) )) (compound_statement "{\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }" { (expression_statement "local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134))" identifier = (call_expression "CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134))" identifier (argument_list "((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134))" ( (binary_expression "(int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000" (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) ))) + 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_5c = (longlong)ROUND(fVar1);\n            }" else (compound_statement "{\n              local_5c = (longlong)ROUND(fVar1);\n            }" { (expression_statement "local_5c = (longlong)ROUND(fVar1);" (assignment_expression "local_5c = (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 "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) (if_statement "if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        param_2[0x14] = 8;\n      }" { (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) })) }))) (while_statement "while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }" while (parenthesized_expression "(0 < (int)uVar18)" ( (binary_expression "0 < (int)uVar18" number_literal < (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }" { (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" identifier = (subscript_expression "param_2[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }" if (parenthesized_expression "(uVar16 <= uVar9)" ( (binary_expression "uVar16 <= uVar9" identifier <= identifier) )) (compound_statement "{\n        uVar8 = uVar16;\n      }" { (expression_statement "uVar8 = uVar16;" (assignment_expression "uVar8 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar18 = uVar16 - uVar8;" (assignment_expression "uVar18 = uVar16 - uVar8" identifier = (binary_expression "uVar16 - uVar8" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }" if (parenthesized_expression "(-1 < (int)uVar18)" ( (binary_expression "-1 < (int)uVar18" number_literal < (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar16 = uVar18;\n      }" { (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" identifier = identifier) ;) })) (if_statement "if (uVar9 == 8) {\n        *param_6 = 0;\n      }" if (parenthesized_expression "(uVar9 == 8)" ( (binary_expression "uVar9 == 8" identifier == number_literal) )) (compound_statement "{\n        *param_6 = 0;\n      }" { (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) })) (expression_statement "uVar9 = uVar9 - uVar8;" (assignment_expression "uVar9 = uVar9 - uVar8" identifier = (binary_expression "uVar9 - uVar8" identifier - identifier)) ;) (expression_statement "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" identifier = (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar11" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._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        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }" { (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._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 "bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar8 & 0x1f)) & uVar7)" ( (binary_expression "~(-1 << ((byte)uVar8 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar8 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar8 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar8 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar9 & 0x1f)" ( (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }" if (parenthesized_expression "((uVar9 & 0x20) != 0)" ( (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" ( (binary_expression "uVar9 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        bVar11 = 0;\n      }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" * identifier) = (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" * identifier) | identifier)) ;) (if_statement "if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }" { (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" identifier = (binary_expression "param_6 + 1" identifier + number_literal)) ;) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "param_5 + *(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_6 = param_6 + param_2[9];" (assignment_expression "param_6 = param_6 + param_2[9]" identifier = (binary_expression "param_6 + param_2[9]" identifier + (subscript_expression "param_2[9]" identifier [ number_literal ]))) ;) (if_statement "if (local_40 == param_3) {\n      return;\n    }" if (parenthesized_expression "(local_40 == param_3)" ( (binary_expression "local_40 == param_3" identifier == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\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\nvoid __regparm2\nExportCMYKOQuantum(Image *image,QuantumInfo *quantum_info,MagickSizeType number_pixels,Quantum *p,\n                  uchar *q,ExceptionInfo *exception)\n\n{\n  float fVar1;\n  double dVar2;\n  longlong lVar3;\n  double dVar4;\n  ushort uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  byte bVar9;\n  uchar uVar10;\n  uchar uVar11;\n  uchar uVar12;\n  int iVar13;\n  byte bVar14;\n  uchar uVar15;\n  PixelChannelMap *pPVar16;\n  uint uVar17;\n  uchar uVar18;\n  uint uVar19;\n  uchar local_8c;\n  uchar local_84;\n  uchar local_7c;\n  uchar local_74;\n  uchar local_6c;\n  int local_64;\n  undefined8 local_5c;\n  int local_4c;\n  int iStack_48;\n  int local_40;\n  uchar local_34;\n  \n  dVar4 = DAT_002a8000;\n  dVar2 = _DAT_0029f148;\n  if (image->colorspace != CMYKColorspace) {\n    ThrowMagickException\n              (exception,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,ImageError,\n               "ColorSeparatedImageRequired","`%s\'",image->filename);\n    return;\n  }\n  uVar17 = quantum_info->depth;\n  if (uVar17 == 0x10) {\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = (uchar)uVar5;\n          q[1] = uVar10;\n        }\n        else {\n          *q = uVar10;\n          q[1] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[2] = (uchar)uVar5;\n          q[3] = uVar10;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = (uchar)uVar5;\n          q[5] = uVar10;\n        }\n        else {\n          q[5] = (uchar)uVar5;\n          q[4] = uVar10;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset]);\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[6] = (uchar)uVar5;\n          q[7] = uVar10;\n        }\n        else {\n          q[6] = uVar10;\n          q[7] = (uchar)uVar5;\n        }\n        fVar1 = 0.0;\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * (float)_DAT_0029f148;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = (uchar)uVar5;\n          q[9] = uVar10;\n        }\n        else {\n          q[8] = uVar10;\n          q[9] = (uchar)uVar5;\n        }\n        q = q + quantum_info->pad + 10;\n        local_64 = local_64 + 1;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n    if ((int)number_pixels < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = p[image->channel_map->offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar11 = '\0';\n        uVar12 = '\0';\n        uVar15 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013caf0;\nLAB_0013cf50:\n        *q = uVar10;\n        q[1] = uVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf50;\nLAB_0013caf0:\n        *q = uVar15;\n        q[1] = uVar11;\n      }\n      dVar2 = p[image->channel_map[1].offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cb64;\nLAB_0013cf28:\n        q[2] = uVar10;\n        q[3] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf28;\nLAB_0013cb64:\n        q[3] = uVar12;\n        q[2] = uVar11;\n      }\n      dVar2 = p[image->channel_map[2].offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cbe0;\nLAB_0013cf00:\n        q[4] = uVar10;\n        q[5] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf00;\nLAB_0013cbe0:\n        q[4] = uVar11;\n        q[5] = uVar12;\n      }\n      if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n         (dVar2 = p[image->channel_map[3].offset], dVar2 <= 0.0)) {\n        uVar11 = '\0';\n        uVar15 = '\0';\n        uVar10 = '\0';\n        uVar12 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca13;\nLAB_0013cc16:\n        uVar18 = '\0';\n        q[6] = uVar10;\n        q[7] = uVar12;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits != BlendPixelTrait) goto LAB_0013ca40;\nLAB_0013cc36:\n        uVar18 = '\0';\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)p[pPVar16[4].offset];\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          uVar18 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        uVar18 = (uchar)((uint)iVar13 >> 8);\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca4a;\nLAB_0013cca5:\n        q[8] = (uchar)iVar13;\n        q[9] = uVar18;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cc16;\nLAB_0013ca13:\n        uVar18 = '\0';\n        q[6] = uVar15;\n        q[7] = uVar11;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cca5;\nLAB_0013ca4a:\n        q[9] = (uchar)iVar13;\n        q[8] = uVar18;\n      }\n      local_64 = local_64 + 1;\n      q = q + quantum_info->pad + 10;\n      p = p + image->number_channels;\n      if (local_64 == (int)number_pixels) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar17 < 0x11) {\n    if (uVar17 == 8) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map->offset]) {\n          dVar2 = p[image->channel_map->offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *q = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[1].offset]) {\n          dVar2 = p[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[1] = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[2].offset]) {\n          dVar2 = p[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[2] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n           (0.0 < p[image->channel_map[3].offset])) {\n          dVar2 = p[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[3] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[4].traits == BlendPixelTrait) &&\n           (0.0 < DAT_0029f710 - (float)p[image->channel_map[4].offset])) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) / DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        q[4] = uVar10;\n        iVar13 = iVar13 + 1;\n        p = p + image->number_channels;\n        q = q + quantum_info->pad + 5;\n      } while (iVar13 != (int)number_pixels);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar17 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar17 == 0x20) {\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)number_pixels < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *q = SUB41(fVar1,0);\n            q[1] = uVar10;\n            q[2] = uVar11;\n            q[3] = uVar12;\n          }\n          else {\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[4] = SUB41(fVar1,0);\n            q[5] = uVar10;\n            q[6] = uVar11;\n            q[7] = uVar12;\n          }\n          else {\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[8] = SUB41(fVar1,0);\n            q[10] = uVar12;\n            q[9] = uVar10;\n            q[0xb] = uVar11;\n          }\n          else {\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[3].traits == UndefinedPixelTrait) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)p[image->channel_map[3].offset];\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0xc] = SUB41(fVar1,0);\n            q[0xe] = uVar11;\n            q[0xd] = uVar10;\n            q[0xf] = uVar12;\n          }\n          else {\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset];\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0x10] = SUB41(fVar1,0);\n            q[0x12] = uVar12;\n            q[0x11] = uVar10;\n            q[0x13] = uVar11;\n          }\n          else {\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          q = q + quantum_info->pad + 0x14;\n          p = p + image->number_channels;\n        } while (local_64 != (int)number_pixels);\n        return;\n      }\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        if (p[image->channel_map->offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;\n          if (dVar4 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[1] = uVar11;\n          *q = local_34;\n          q[2] = uVar10;\n          q[3] = uVar12;\n        }\n        else {\n          q[2] = uVar11;\n          *q = uVar12;\n          q[3] = local_34;\n          q[1] = uVar10;\n        }\n        if (p[image->channel_map[1].offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = local_34;\n          q[6] = uVar10;\n          q[5] = uVar11;\n          q[7] = uVar12;\n        }\n        else {\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[6] = uVar11;\n          q[7] = local_34;\n        }\n        if (p[image->channel_map[2].offset] <= 0.0) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar11 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[10] = uVar11;\n          q[0xb] = uVar12;\n          q[8] = uVar10;\n          q[9] = uVar15;\n        }\n        else {\n          q[9] = uVar11;\n          q[10] = uVar15;\n          q[8] = uVar12;\n          q[0xb] = uVar10;\n        }\n        if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n           (p[image->channel_map[3].offset] <= 0.0)) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0xc] = local_34;\n          q[0xe] = uVar10;\n          q[0xd] = uVar11;\n          q[0xf] = uVar12;\n        }\n        else {\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[0xe] = uVar11;\n          q[0xf] = local_34;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0)) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar12 = '\0';\n          uVar11 = '\0';\n        }\n        else {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0x12] = uVar12;\n          q[0x13] = uVar11;\n          q[0x10] = uVar10;\n          q[0x11] = uVar15;\n        }\n        else {\n          q[0x11] = uVar12;\n          q[0x12] = uVar15;\n          q[0x10] = uVar11;\n          q[0x13] = uVar10;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x14;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n    if (uVar17 != 0x40) goto LAB_0013d3f8;\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = p[image->channel_map->offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = SUB81(dVar2,0);\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[1] = local_8c;\n          q[2] = local_6c;\n          q[3] = local_74;\n          q[6] = local_7c;\n          q[7] = local_84;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = uVar12;\n          q[7] = SUB81(dVar2,0);\n          q[4] = local_74;\n          *q = local_84;\n          q[5] = local_6c;\n          q[1] = local_7c;\n          q[6] = local_8c;\n        }\n        dVar2 = p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = SUB81(dVar2,0);\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[9] = local_8c;\n          q[0xe] = local_7c;\n          q[0xf] = local_84;\n          q[10] = local_6c;\n          q[0xb] = local_74;\n        }\n        else {\n          q[0xb] = uVar12;\n          q[10] = uVar10;\n          q[0xf] = SUB81(dVar2,0);\n          q[0xc] = local_74;\n          q[8] = local_84;\n          q[0xd] = local_6c;\n          q[9] = local_7c;\n          q[0xe] = local_8c;\n        }\n        dVar2 = p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x14] = uVar10;\n          q[0x10] = SUB81(dVar2,0);\n          q[0x11] = local_8c;\n          q[0x12] = local_6c;\n          q[0x13] = local_74;\n          q[0x15] = uVar12;\n          q[0x16] = local_7c;\n          q[0x17] = local_84;\n        }\n        else {\n          q[0x13] = uVar10;\n          q[0x17] = SUB81(dVar2,0);\n          q[0x10] = local_84;\n          q[0x11] = local_7c;\n          q[0x12] = uVar12;\n          q[0x14] = local_74;\n          q[0x15] = local_6c;\n          q[0x16] = local_8c;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset];\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x1c] = uVar10;\n          q[0x1d] = uVar12;\n          q[0x18] = SUB81(dVar2,0);\n          q[0x19] = local_8c;\n          q[0x1e] = local_7c;\n          q[0x1a] = local_6c;\n          q[0x1b] = local_74;\n          q[0x1f] = local_84;\n        }\n        else {\n          q[0x1b] = uVar10;\n          q[0x1f] = SUB81(dVar2,0);\n          q[0x1c] = local_74;\n          q[0x18] = local_84;\n          q[0x1d] = local_6c;\n          q[0x19] = local_7c;\n          q[0x1a] = uVar12;\n          q[0x1e] = local_8c;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset];\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x20] = SUB81(dVar2,0);\n          q[0x24] = uVar10;\n          q[0x21] = local_8c;\n          q[0x22] = local_6c;\n          q[0x23] = local_74;\n          q[0x25] = uVar12;\n          q[0x26] = local_7c;\n          q[0x27] = local_84;\n        }\n        else {\n          q[0x23] = uVar10;\n          q[0x27] = SUB81(dVar2,0);\n          q[0x20] = local_84;\n          q[0x21] = local_7c;\n          q[0x22] = uVar12;\n          q[0x24] = local_74;\n          q[0x25] = local_6c;\n          q[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x28;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n  }\n  uVar8 = 0;\n  if (uVar17 < 0x41) {\n    uVar8 = uVar17;\n  }\n  bVar9 = (byte)(uVar8 - 1);\n  bVar14 = bVar9 & 0x1f;\n  uVar6 = 2 << (bVar9 & 0x1f);\n  uVar7 = uVar6;\n  uVar19 = 0 << bVar14 | 2U >> 0x20 - bVar14;\n  if ((uVar8 - 1 & 0x20) != 0) {\n    uVar7 = 0;\n    uVar19 = uVar6;\n  }\n  local_4c = uVar7 - 1;\n  iStack_48 = (uVar19 - 1) + (uint)(uVar7 != 0);\nLAB_0013be09:\n  if ((int)number_pixels < 1) {\n    return;\n  }\n  local_40 = 0;\n  do {\n    local_5c = 0;\n    pPVar16 = image->channel_map;\n    if (0.0 < p[pPVar16->offset]) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * p[pPVar16->offset]) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar8 = (quantum_info->state).bits;\n    if (uVar8 == 0) {\n      (quantum_info->state).bits = 8;\n      uVar8 = 8;\n    }\n    if ((int)uVar17 < 1) {\n      dVar2 = p[pPVar16[1].offset];\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013bfd2;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013bfd2:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[1].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      dVar2 = p[pPVar16[2].offset];\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c18c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c18c:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[2].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      local_5c = 0;\n      if (pPVar16[3].traits != UndefinedPixelTrait) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c33c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c33c:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[3].traits != UndefinedPixelTrait) {\nLAB_0013c36e:\n        if (p[pPVar16[3].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      local_5c = 0;\n      uVar19 = uVar17;\n      if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c4f4;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c4f4:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[4].traits == BlendPixelTrait) {\nLAB_0013ccd8:\n        if (DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar19 = uVar17;\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }\n    while (0 < (int)uVar19) {\n      uVar8 = (quantum_info->state).bits;\n      uVar7 = uVar8;\n      if (uVar17 <= uVar8) {\n        uVar7 = uVar17;\n      }\n      uVar19 = uVar17 - uVar7;\n      uVar17 = 0;\n      if (-1 < (int)uVar19) {\n        uVar17 = uVar19;\n      }\n      if (uVar8 == 8) {\n        *q = 0;\n      }\n      uVar8 = uVar8 - uVar7;\n      (quantum_info->state).bits = uVar8;\n      bVar14 = (byte)uVar17 & 0x1f;\n      uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n      if ((uVar17 & 0x20) != 0) {\n        uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n      }\n      bVar14 = (byte)((~(-1 << ((byte)uVar7 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n      if ((uVar8 & 0x20) != 0) {\n        bVar14 = 0;\n      }\n      *q = *q | bVar14;\n      if (uVar8 == 0) {\n        q = q + 1;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    p = p + image->number_channels;\n    q = q + quantum_info->pad;\n    if (local_40 == (int)number_pixels) {\n      return;\n    }\n    uVar17 = quantum_info->depth;\n  } while( true );\n}\n\n" comment comment comment comment comment comment comment (function_definition "void __regparm2\nExportCMYKOQuantum(Image *image,QuantumInfo *quantum_info,MagickSizeType number_pixels,Quantum *p,\n                  uchar *q,ExceptionInfo *exception)\n\n{\n  float fVar1;\n  double dVar2;\n  longlong lVar3;\n  double dVar4;\n  ushort uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  byte bVar9;\n  uchar uVar10;\n  uchar uVar11;\n  uchar uVar12;\n  int iVar13;\n  byte bVar14;\n  uchar uVar15;\n  PixelChannelMap *pPVar16;\n  uint uVar17;\n  uchar uVar18;\n  uint uVar19;\n  uchar local_8c;\n  uchar local_84;\n  uchar local_7c;\n  uchar local_74;\n  uchar local_6c;\n  int local_64;\n  undefined8 local_5c;\n  int local_4c;\n  int iStack_48;\n  int local_40;\n  uchar local_34;\n  \n  dVar4 = DAT_002a8000;\n  dVar2 = _DAT_0029f148;\n  if (image->colorspace != CMYKColorspace) {\n    ThrowMagickException\n              (exception,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,ImageError,\n               "ColorSeparatedImageRequired","`%s\'",image->filename);\n    return;\n  }\n  uVar17 = quantum_info->depth;\n  if (uVar17 == 0x10) {\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = (uchar)uVar5;\n          q[1] = uVar10;\n        }\n        else {\n          *q = uVar10;\n          q[1] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[2] = (uchar)uVar5;\n          q[3] = uVar10;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = (uchar)uVar5;\n          q[5] = uVar10;\n        }\n        else {\n          q[5] = (uchar)uVar5;\n          q[4] = uVar10;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset]);\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[6] = (uchar)uVar5;\n          q[7] = uVar10;\n        }\n        else {\n          q[6] = uVar10;\n          q[7] = (uchar)uVar5;\n        }\n        fVar1 = 0.0;\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * (float)_DAT_0029f148;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = (uchar)uVar5;\n          q[9] = uVar10;\n        }\n        else {\n          q[8] = uVar10;\n          q[9] = (uchar)uVar5;\n        }\n        q = q + quantum_info->pad + 10;\n        local_64 = local_64 + 1;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n    if ((int)number_pixels < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = p[image->channel_map->offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar11 = '\0';\n        uVar12 = '\0';\n        uVar15 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013caf0;\nLAB_0013cf50:\n        *q = uVar10;\n        q[1] = uVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf50;\nLAB_0013caf0:\n        *q = uVar15;\n        q[1] = uVar11;\n      }\n      dVar2 = p[image->channel_map[1].offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cb64;\nLAB_0013cf28:\n        q[2] = uVar10;\n        q[3] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf28;\nLAB_0013cb64:\n        q[3] = uVar12;\n        q[2] = uVar11;\n      }\n      dVar2 = p[image->channel_map[2].offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cbe0;\nLAB_0013cf00:\n        q[4] = uVar10;\n        q[5] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf00;\nLAB_0013cbe0:\n        q[4] = uVar11;\n        q[5] = uVar12;\n      }\n      if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n         (dVar2 = p[image->channel_map[3].offset], dVar2 <= 0.0)) {\n        uVar11 = '\0';\n        uVar15 = '\0';\n        uVar10 = '\0';\n        uVar12 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca13;\nLAB_0013cc16:\n        uVar18 = '\0';\n        q[6] = uVar10;\n        q[7] = uVar12;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits != BlendPixelTrait) goto LAB_0013ca40;\nLAB_0013cc36:\n        uVar18 = '\0';\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)p[pPVar16[4].offset];\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          uVar18 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        uVar18 = (uchar)((uint)iVar13 >> 8);\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca4a;\nLAB_0013cca5:\n        q[8] = (uchar)iVar13;\n        q[9] = uVar18;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cc16;\nLAB_0013ca13:\n        uVar18 = '\0';\n        q[6] = uVar15;\n        q[7] = uVar11;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cca5;\nLAB_0013ca4a:\n        q[9] = (uchar)iVar13;\n        q[8] = uVar18;\n      }\n      local_64 = local_64 + 1;\n      q = q + quantum_info->pad + 10;\n      p = p + image->number_channels;\n      if (local_64 == (int)number_pixels) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar17 < 0x11) {\n    if (uVar17 == 8) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map->offset]) {\n          dVar2 = p[image->channel_map->offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *q = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[1].offset]) {\n          dVar2 = p[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[1] = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[2].offset]) {\n          dVar2 = p[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[2] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n           (0.0 < p[image->channel_map[3].offset])) {\n          dVar2 = p[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[3] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[4].traits == BlendPixelTrait) &&\n           (0.0 < DAT_0029f710 - (float)p[image->channel_map[4].offset])) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) / DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        q[4] = uVar10;\n        iVar13 = iVar13 + 1;\n        p = p + image->number_channels;\n        q = q + quantum_info->pad + 5;\n      } while (iVar13 != (int)number_pixels);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar17 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar17 == 0x20) {\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)number_pixels < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *q = SUB41(fVar1,0);\n            q[1] = uVar10;\n            q[2] = uVar11;\n            q[3] = uVar12;\n          }\n          else {\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[4] = SUB41(fVar1,0);\n            q[5] = uVar10;\n            q[6] = uVar11;\n            q[7] = uVar12;\n          }\n          else {\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[8] = SUB41(fVar1,0);\n            q[10] = uVar12;\n            q[9] = uVar10;\n            q[0xb] = uVar11;\n          }\n          else {\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[3].traits == UndefinedPixelTrait) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)p[image->channel_map[3].offset];\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0xc] = SUB41(fVar1,0);\n            q[0xe] = uVar11;\n            q[0xd] = uVar10;\n            q[0xf] = uVar12;\n          }\n          else {\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset];\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0x10] = SUB41(fVar1,0);\n            q[0x12] = uVar12;\n            q[0x11] = uVar10;\n            q[0x13] = uVar11;\n          }\n          else {\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          q = q + quantum_info->pad + 0x14;\n          p = p + image->number_channels;\n        } while (local_64 != (int)number_pixels);\n        return;\n      }\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        if (p[image->channel_map->offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;\n          if (dVar4 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[1] = uVar11;\n          *q = local_34;\n          q[2] = uVar10;\n          q[3] = uVar12;\n        }\n        else {\n          q[2] = uVar11;\n          *q = uVar12;\n          q[3] = local_34;\n          q[1] = uVar10;\n        }\n        if (p[image->channel_map[1].offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = local_34;\n          q[6] = uVar10;\n          q[5] = uVar11;\n          q[7] = uVar12;\n        }\n        else {\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[6] = uVar11;\n          q[7] = local_34;\n        }\n        if (p[image->channel_map[2].offset] <= 0.0) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar11 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[10] = uVar11;\n          q[0xb] = uVar12;\n          q[8] = uVar10;\n          q[9] = uVar15;\n        }\n        else {\n          q[9] = uVar11;\n          q[10] = uVar15;\n          q[8] = uVar12;\n          q[0xb] = uVar10;\n        }\n        if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n           (p[image->channel_map[3].offset] <= 0.0)) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0xc] = local_34;\n          q[0xe] = uVar10;\n          q[0xd] = uVar11;\n          q[0xf] = uVar12;\n        }\n        else {\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[0xe] = uVar11;\n          q[0xf] = local_34;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0)) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar12 = '\0';\n          uVar11 = '\0';\n        }\n        else {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0x12] = uVar12;\n          q[0x13] = uVar11;\n          q[0x10] = uVar10;\n          q[0x11] = uVar15;\n        }\n        else {\n          q[0x11] = uVar12;\n          q[0x12] = uVar15;\n          q[0x10] = uVar11;\n          q[0x13] = uVar10;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x14;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n    if (uVar17 != 0x40) goto LAB_0013d3f8;\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = p[image->channel_map->offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = SUB81(dVar2,0);\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[1] = local_8c;\n          q[2] = local_6c;\n          q[3] = local_74;\n          q[6] = local_7c;\n          q[7] = local_84;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = uVar12;\n          q[7] = SUB81(dVar2,0);\n          q[4] = local_74;\n          *q = local_84;\n          q[5] = local_6c;\n          q[1] = local_7c;\n          q[6] = local_8c;\n        }\n        dVar2 = p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = SUB81(dVar2,0);\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[9] = local_8c;\n          q[0xe] = local_7c;\n          q[0xf] = local_84;\n          q[10] = local_6c;\n          q[0xb] = local_74;\n        }\n        else {\n          q[0xb] = uVar12;\n          q[10] = uVar10;\n          q[0xf] = SUB81(dVar2,0);\n          q[0xc] = local_74;\n          q[8] = local_84;\n          q[0xd] = local_6c;\n          q[9] = local_7c;\n          q[0xe] = local_8c;\n        }\n        dVar2 = p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x14] = uVar10;\n          q[0x10] = SUB81(dVar2,0);\n          q[0x11] = local_8c;\n          q[0x12] = local_6c;\n          q[0x13] = local_74;\n          q[0x15] = uVar12;\n          q[0x16] = local_7c;\n          q[0x17] = local_84;\n        }\n        else {\n          q[0x13] = uVar10;\n          q[0x17] = SUB81(dVar2,0);\n          q[0x10] = local_84;\n          q[0x11] = local_7c;\n          q[0x12] = uVar12;\n          q[0x14] = local_74;\n          q[0x15] = local_6c;\n          q[0x16] = local_8c;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset];\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x1c] = uVar10;\n          q[0x1d] = uVar12;\n          q[0x18] = SUB81(dVar2,0);\n          q[0x19] = local_8c;\n          q[0x1e] = local_7c;\n          q[0x1a] = local_6c;\n          q[0x1b] = local_74;\n          q[0x1f] = local_84;\n        }\n        else {\n          q[0x1b] = uVar10;\n          q[0x1f] = SUB81(dVar2,0);\n          q[0x1c] = local_74;\n          q[0x18] = local_84;\n          q[0x1d] = local_6c;\n          q[0x19] = local_7c;\n          q[0x1a] = uVar12;\n          q[0x1e] = local_8c;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset];\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x20] = SUB81(dVar2,0);\n          q[0x24] = uVar10;\n          q[0x21] = local_8c;\n          q[0x22] = local_6c;\n          q[0x23] = local_74;\n          q[0x25] = uVar12;\n          q[0x26] = local_7c;\n          q[0x27] = local_84;\n        }\n        else {\n          q[0x23] = uVar10;\n          q[0x27] = SUB81(dVar2,0);\n          q[0x20] = local_84;\n          q[0x21] = local_7c;\n          q[0x22] = uVar12;\n          q[0x24] = local_74;\n          q[0x25] = local_6c;\n          q[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x28;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n  }\n  uVar8 = 0;\n  if (uVar17 < 0x41) {\n    uVar8 = uVar17;\n  }\n  bVar9 = (byte)(uVar8 - 1);\n  bVar14 = bVar9 & 0x1f;\n  uVar6 = 2 << (bVar9 & 0x1f);\n  uVar7 = uVar6;\n  uVar19 = 0 << bVar14 | 2U >> 0x20 - bVar14;\n  if ((uVar8 - 1 & 0x20) != 0) {\n    uVar7 = 0;\n    uVar19 = uVar6;\n  }\n  local_4c = uVar7 - 1;\n  iStack_48 = (uVar19 - 1) + (uint)(uVar7 != 0);\nLAB_0013be09:\n  if ((int)number_pixels < 1) {\n    return;\n  }\n  local_40 = 0;\n  do {\n    local_5c = 0;\n    pPVar16 = image->channel_map;\n    if (0.0 < p[pPVar16->offset]) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * p[pPVar16->offset]) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar8 = (quantum_info->state).bits;\n    if (uVar8 == 0) {\n      (quantum_info->state).bits = 8;\n      uVar8 = 8;\n    }\n    if ((int)uVar17 < 1) {\n      dVar2 = p[pPVar16[1].offset];\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013bfd2;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013bfd2:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[1].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      dVar2 = p[pPVar16[2].offset];\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c18c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c18c:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[2].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      local_5c = 0;\n      if (pPVar16[3].traits != UndefinedPixelTrait) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c33c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c33c:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[3].traits != UndefinedPixelTrait) {\nLAB_0013c36e:\n        if (p[pPVar16[3].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      local_5c = 0;\n      uVar19 = uVar17;\n      if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c4f4;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c4f4:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[4].traits == BlendPixelTrait) {\nLAB_0013ccd8:\n        if (DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar19 = uVar17;\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }\n    while (0 < (int)uVar19) {\n      uVar8 = (quantum_info->state).bits;\n      uVar7 = uVar8;\n      if (uVar17 <= uVar8) {\n        uVar7 = uVar17;\n      }\n      uVar19 = uVar17 - uVar7;\n      uVar17 = 0;\n      if (-1 < (int)uVar19) {\n        uVar17 = uVar19;\n      }\n      if (uVar8 == 8) {\n        *q = 0;\n      }\n      uVar8 = uVar8 - uVar7;\n      (quantum_info->state).bits = uVar8;\n      bVar14 = (byte)uVar17 & 0x1f;\n      uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n      if ((uVar17 & 0x20) != 0) {\n        uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n      }\n      bVar14 = (byte)((~(-1 << ((byte)uVar7 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n      if ((uVar8 & 0x20) != 0) {\n        bVar14 = 0;\n      }\n      *q = *q | bVar14;\n      if (uVar8 == 0) {\n        q = q + 1;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    p = p + image->number_channels;\n    q = q + quantum_info->pad;\n    if (local_40 == (int)number_pixels) {\n      return;\n    }\n    uVar17 = quantum_info->depth;\n  } while( true );\n}" primitive_type (ERROR "__regparm2" identifier) (function_declarator "ExportCMYKOQuantum(Image *image,QuantumInfo *quantum_info,MagickSizeType number_pixels,Quantum *p,\n                  uchar *q,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,QuantumInfo *quantum_info,MagickSizeType number_pixels,Quantum *p,\n                  uchar *q,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "QuantumInfo *quantum_info" type_identifier (pointer_declarator "*quantum_info" * identifier)) , (parameter_declaration "MagickSizeType number_pixels" type_identifier identifier) , (parameter_declaration "Quantum *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "uchar *q" type_identifier (pointer_declarator "*q" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  float fVar1;\n  double dVar2;\n  longlong lVar3;\n  double dVar4;\n  ushort uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  byte bVar9;\n  uchar uVar10;\n  uchar uVar11;\n  uchar uVar12;\n  int iVar13;\n  byte bVar14;\n  uchar uVar15;\n  PixelChannelMap *pPVar16;\n  uint uVar17;\n  uchar uVar18;\n  uint uVar19;\n  uchar local_8c;\n  uchar local_84;\n  uchar local_7c;\n  uchar local_74;\n  uchar local_6c;\n  int local_64;\n  undefined8 local_5c;\n  int local_4c;\n  int iStack_48;\n  int local_40;\n  uchar local_34;\n  \n  dVar4 = DAT_002a8000;\n  dVar2 = _DAT_0029f148;\n  if (image->colorspace != CMYKColorspace) {\n    ThrowMagickException\n              (exception,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,ImageError,\n               "ColorSeparatedImageRequired","`%s\'",image->filename);\n    return;\n  }\n  uVar17 = quantum_info->depth;\n  if (uVar17 == 0x10) {\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = (uchar)uVar5;\n          q[1] = uVar10;\n        }\n        else {\n          *q = uVar10;\n          q[1] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[2] = (uchar)uVar5;\n          q[3] = uVar10;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = (uchar)uVar5;\n          q[5] = uVar10;\n        }\n        else {\n          q[5] = (uchar)uVar5;\n          q[4] = uVar10;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset]);\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[6] = (uchar)uVar5;\n          q[7] = uVar10;\n        }\n        else {\n          q[6] = uVar10;\n          q[7] = (uchar)uVar5;\n        }\n        fVar1 = 0.0;\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * (float)_DAT_0029f148;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = (uchar)uVar5;\n          q[9] = uVar10;\n        }\n        else {\n          q[8] = uVar10;\n          q[9] = (uchar)uVar5;\n        }\n        q = q + quantum_info->pad + 10;\n        local_64 = local_64 + 1;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n    if ((int)number_pixels < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = p[image->channel_map->offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar11 = '\0';\n        uVar12 = '\0';\n        uVar15 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013caf0;\nLAB_0013cf50:\n        *q = uVar10;\n        q[1] = uVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf50;\nLAB_0013caf0:\n        *q = uVar15;\n        q[1] = uVar11;\n      }\n      dVar2 = p[image->channel_map[1].offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cb64;\nLAB_0013cf28:\n        q[2] = uVar10;\n        q[3] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf28;\nLAB_0013cb64:\n        q[3] = uVar12;\n        q[2] = uVar11;\n      }\n      dVar2 = p[image->channel_map[2].offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cbe0;\nLAB_0013cf00:\n        q[4] = uVar10;\n        q[5] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf00;\nLAB_0013cbe0:\n        q[4] = uVar11;\n        q[5] = uVar12;\n      }\n      if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n         (dVar2 = p[image->channel_map[3].offset], dVar2 <= 0.0)) {\n        uVar11 = '\0';\n        uVar15 = '\0';\n        uVar10 = '\0';\n        uVar12 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca13;\nLAB_0013cc16:\n        uVar18 = '\0';\n        q[6] = uVar10;\n        q[7] = uVar12;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits != BlendPixelTrait) goto LAB_0013ca40;\nLAB_0013cc36:\n        uVar18 = '\0';\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)p[pPVar16[4].offset];\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          uVar18 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        uVar18 = (uchar)((uint)iVar13 >> 8);\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca4a;\nLAB_0013cca5:\n        q[8] = (uchar)iVar13;\n        q[9] = uVar18;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cc16;\nLAB_0013ca13:\n        uVar18 = '\0';\n        q[6] = uVar15;\n        q[7] = uVar11;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cca5;\nLAB_0013ca4a:\n        q[9] = (uchar)iVar13;\n        q[8] = uVar18;\n      }\n      local_64 = local_64 + 1;\n      q = q + quantum_info->pad + 10;\n      p = p + image->number_channels;\n      if (local_64 == (int)number_pixels) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar17 < 0x11) {\n    if (uVar17 == 8) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map->offset]) {\n          dVar2 = p[image->channel_map->offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *q = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[1].offset]) {\n          dVar2 = p[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[1] = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[2].offset]) {\n          dVar2 = p[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[2] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n           (0.0 < p[image->channel_map[3].offset])) {\n          dVar2 = p[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[3] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[4].traits == BlendPixelTrait) &&\n           (0.0 < DAT_0029f710 - (float)p[image->channel_map[4].offset])) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) / DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        q[4] = uVar10;\n        iVar13 = iVar13 + 1;\n        p = p + image->number_channels;\n        q = q + quantum_info->pad + 5;\n      } while (iVar13 != (int)number_pixels);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar17 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar17 == 0x20) {\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)number_pixels < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *q = SUB41(fVar1,0);\n            q[1] = uVar10;\n            q[2] = uVar11;\n            q[3] = uVar12;\n          }\n          else {\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[4] = SUB41(fVar1,0);\n            q[5] = uVar10;\n            q[6] = uVar11;\n            q[7] = uVar12;\n          }\n          else {\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[8] = SUB41(fVar1,0);\n            q[10] = uVar12;\n            q[9] = uVar10;\n            q[0xb] = uVar11;\n          }\n          else {\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[3].traits == UndefinedPixelTrait) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)p[image->channel_map[3].offset];\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0xc] = SUB41(fVar1,0);\n            q[0xe] = uVar11;\n            q[0xd] = uVar10;\n            q[0xf] = uVar12;\n          }\n          else {\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset];\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0x10] = SUB41(fVar1,0);\n            q[0x12] = uVar12;\n            q[0x11] = uVar10;\n            q[0x13] = uVar11;\n          }\n          else {\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          q = q + quantum_info->pad + 0x14;\n          p = p + image->number_channels;\n        } while (local_64 != (int)number_pixels);\n        return;\n      }\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        if (p[image->channel_map->offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;\n          if (dVar4 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[1] = uVar11;\n          *q = local_34;\n          q[2] = uVar10;\n          q[3] = uVar12;\n        }\n        else {\n          q[2] = uVar11;\n          *q = uVar12;\n          q[3] = local_34;\n          q[1] = uVar10;\n        }\n        if (p[image->channel_map[1].offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = local_34;\n          q[6] = uVar10;\n          q[5] = uVar11;\n          q[7] = uVar12;\n        }\n        else {\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[6] = uVar11;\n          q[7] = local_34;\n        }\n        if (p[image->channel_map[2].offset] <= 0.0) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar11 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[10] = uVar11;\n          q[0xb] = uVar12;\n          q[8] = uVar10;\n          q[9] = uVar15;\n        }\n        else {\n          q[9] = uVar11;\n          q[10] = uVar15;\n          q[8] = uVar12;\n          q[0xb] = uVar10;\n        }\n        if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n           (p[image->channel_map[3].offset] <= 0.0)) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0xc] = local_34;\n          q[0xe] = uVar10;\n          q[0xd] = uVar11;\n          q[0xf] = uVar12;\n        }\n        else {\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[0xe] = uVar11;\n          q[0xf] = local_34;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0)) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar12 = '\0';\n          uVar11 = '\0';\n        }\n        else {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0x12] = uVar12;\n          q[0x13] = uVar11;\n          q[0x10] = uVar10;\n          q[0x11] = uVar15;\n        }\n        else {\n          q[0x11] = uVar12;\n          q[0x12] = uVar15;\n          q[0x10] = uVar11;\n          q[0x13] = uVar10;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x14;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n    if (uVar17 != 0x40) goto LAB_0013d3f8;\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = p[image->channel_map->offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = SUB81(dVar2,0);\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[1] = local_8c;\n          q[2] = local_6c;\n          q[3] = local_74;\n          q[6] = local_7c;\n          q[7] = local_84;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = uVar12;\n          q[7] = SUB81(dVar2,0);\n          q[4] = local_74;\n          *q = local_84;\n          q[5] = local_6c;\n          q[1] = local_7c;\n          q[6] = local_8c;\n        }\n        dVar2 = p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = SUB81(dVar2,0);\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[9] = local_8c;\n          q[0xe] = local_7c;\n          q[0xf] = local_84;\n          q[10] = local_6c;\n          q[0xb] = local_74;\n        }\n        else {\n          q[0xb] = uVar12;\n          q[10] = uVar10;\n          q[0xf] = SUB81(dVar2,0);\n          q[0xc] = local_74;\n          q[8] = local_84;\n          q[0xd] = local_6c;\n          q[9] = local_7c;\n          q[0xe] = local_8c;\n        }\n        dVar2 = p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x14] = uVar10;\n          q[0x10] = SUB81(dVar2,0);\n          q[0x11] = local_8c;\n          q[0x12] = local_6c;\n          q[0x13] = local_74;\n          q[0x15] = uVar12;\n          q[0x16] = local_7c;\n          q[0x17] = local_84;\n        }\n        else {\n          q[0x13] = uVar10;\n          q[0x17] = SUB81(dVar2,0);\n          q[0x10] = local_84;\n          q[0x11] = local_7c;\n          q[0x12] = uVar12;\n          q[0x14] = local_74;\n          q[0x15] = local_6c;\n          q[0x16] = local_8c;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset];\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x1c] = uVar10;\n          q[0x1d] = uVar12;\n          q[0x18] = SUB81(dVar2,0);\n          q[0x19] = local_8c;\n          q[0x1e] = local_7c;\n          q[0x1a] = local_6c;\n          q[0x1b] = local_74;\n          q[0x1f] = local_84;\n        }\n        else {\n          q[0x1b] = uVar10;\n          q[0x1f] = SUB81(dVar2,0);\n          q[0x1c] = local_74;\n          q[0x18] = local_84;\n          q[0x1d] = local_6c;\n          q[0x19] = local_7c;\n          q[0x1a] = uVar12;\n          q[0x1e] = local_8c;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset];\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x20] = SUB81(dVar2,0);\n          q[0x24] = uVar10;\n          q[0x21] = local_8c;\n          q[0x22] = local_6c;\n          q[0x23] = local_74;\n          q[0x25] = uVar12;\n          q[0x26] = local_7c;\n          q[0x27] = local_84;\n        }\n        else {\n          q[0x23] = uVar10;\n          q[0x27] = SUB81(dVar2,0);\n          q[0x20] = local_84;\n          q[0x21] = local_7c;\n          q[0x22] = uVar12;\n          q[0x24] = local_74;\n          q[0x25] = local_6c;\n          q[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x28;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n  }\n  uVar8 = 0;\n  if (uVar17 < 0x41) {\n    uVar8 = uVar17;\n  }\n  bVar9 = (byte)(uVar8 - 1);\n  bVar14 = bVar9 & 0x1f;\n  uVar6 = 2 << (bVar9 & 0x1f);\n  uVar7 = uVar6;\n  uVar19 = 0 << bVar14 | 2U >> 0x20 - bVar14;\n  if ((uVar8 - 1 & 0x20) != 0) {\n    uVar7 = 0;\n    uVar19 = uVar6;\n  }\n  local_4c = uVar7 - 1;\n  iStack_48 = (uVar19 - 1) + (uint)(uVar7 != 0);\nLAB_0013be09:\n  if ((int)number_pixels < 1) {\n    return;\n  }\n  local_40 = 0;\n  do {\n    local_5c = 0;\n    pPVar16 = image->channel_map;\n    if (0.0 < p[pPVar16->offset]) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * p[pPVar16->offset]) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar8 = (quantum_info->state).bits;\n    if (uVar8 == 0) {\n      (quantum_info->state).bits = 8;\n      uVar8 = 8;\n    }\n    if ((int)uVar17 < 1) {\n      dVar2 = p[pPVar16[1].offset];\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013bfd2;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013bfd2:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[1].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      dVar2 = p[pPVar16[2].offset];\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c18c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c18c:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[2].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      local_5c = 0;\n      if (pPVar16[3].traits != UndefinedPixelTrait) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c33c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c33c:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[3].traits != UndefinedPixelTrait) {\nLAB_0013c36e:\n        if (p[pPVar16[3].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      local_5c = 0;\n      uVar19 = uVar17;\n      if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c4f4;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c4f4:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[4].traits == BlendPixelTrait) {\nLAB_0013ccd8:\n        if (DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar19 = uVar17;\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }\n    while (0 < (int)uVar19) {\n      uVar8 = (quantum_info->state).bits;\n      uVar7 = uVar8;\n      if (uVar17 <= uVar8) {\n        uVar7 = uVar17;\n      }\n      uVar19 = uVar17 - uVar7;\n      uVar17 = 0;\n      if (-1 < (int)uVar19) {\n        uVar17 = uVar19;\n      }\n      if (uVar8 == 8) {\n        *q = 0;\n      }\n      uVar8 = uVar8 - uVar7;\n      (quantum_info->state).bits = uVar8;\n      bVar14 = (byte)uVar17 & 0x1f;\n      uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n      if ((uVar17 & 0x20) != 0) {\n        uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n      }\n      bVar14 = (byte)((~(-1 << ((byte)uVar7 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n      if ((uVar8 & 0x20) != 0) {\n        bVar14 = 0;\n      }\n      *q = *q | bVar14;\n      if (uVar8 == 0) {\n        q = q + 1;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    p = p + image->number_channels;\n    q = q + quantum_info->pad;\n    if (local_40 == (int)number_pixels) {\n      return;\n    }\n    uVar17 = quantum_info->depth;\n  } while( true );\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "uchar uVar10;" type_identifier identifier ;) (declaration "uchar uVar11;" type_identifier identifier ;) (declaration "uchar uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "uchar uVar15;" type_identifier identifier ;) (declaration "PixelChannelMap *pPVar16;" type_identifier (pointer_declarator "*pPVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uchar uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uchar local_8c;" type_identifier identifier ;) (declaration "uchar local_84;" type_identifier identifier ;) (declaration "uchar local_7c;" type_identifier identifier ;) (declaration "uchar local_74;" type_identifier identifier ;) (declaration "uchar local_6c;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "undefined8 local_5c;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int iStack_48;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "uchar local_34;" type_identifier identifier ;) (expression_statement "dVar4 = DAT_002a8000;" (assignment_expression "dVar4 = DAT_002a8000" identifier = identifier) ;) (expression_statement "dVar2 = _DAT_0029f148;" (assignment_expression "dVar2 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (image->colorspace != CMYKColorspace) {\n    ThrowMagickException\n              (exception,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,ImageError,\n               "ColorSeparatedImageRequired","`%s\'",image->filename);\n    return;\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","ExportCMYKOQuantum",0x6f7,ImageError,\n               "ColorSeparatedImageRequired","`%s\'",image->filename);\n    return;\n  }" { (expression_statement "ThrowMagickException\n              (exception,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,ImageError,\n               "ColorSeparatedImageRequired","`%s\'",image->filename);" (call_expression "ThrowMagickException\n              (exception,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,ImageError,\n               "ColorSeparatedImageRequired","`%s\'",image->filename)" identifier (argument_list "(exception,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,ImageError,\n               "ColorSeparatedImageRequired","`%s\'",image->filename)" ( identifier , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , (string_literal ""ExportCMYKOQuantum"" " string_content ") , number_literal , identifier , (string_literal ""ColorSeparatedImageRequired"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (field_expression "image->filename" identifier -> field_identifier) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar17 = quantum_info->depth;" (assignment_expression "uVar17 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (uVar17 == 0x10) {\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = (uchar)uVar5;\n          q[1] = uVar10;\n        }\n        else {\n          *q = uVar10;\n          q[1] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[2] = (uchar)uVar5;\n          q[3] = uVar10;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = (uchar)uVar5;\n          q[5] = uVar10;\n        }\n        else {\n          q[5] = (uchar)uVar5;\n          q[4] = uVar10;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset]);\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[6] = (uchar)uVar5;\n          q[7] = uVar10;\n        }\n        else {\n          q[6] = uVar10;\n          q[7] = (uchar)uVar5;\n        }\n        fVar1 = 0.0;\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * (float)_DAT_0029f148;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = (uchar)uVar5;\n          q[9] = uVar10;\n        }\n        else {\n          q[8] = uVar10;\n          q[9] = (uchar)uVar5;\n        }\n        q = q + quantum_info->pad + 10;\n        local_64 = local_64 + 1;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n    if ((int)number_pixels < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = p[image->channel_map->offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar11 = '\0';\n        uVar12 = '\0';\n        uVar15 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013caf0;\nLAB_0013cf50:\n        *q = uVar10;\n        q[1] = uVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf50;\nLAB_0013caf0:\n        *q = uVar15;\n        q[1] = uVar11;\n      }\n      dVar2 = p[image->channel_map[1].offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cb64;\nLAB_0013cf28:\n        q[2] = uVar10;\n        q[3] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf28;\nLAB_0013cb64:\n        q[3] = uVar12;\n        q[2] = uVar11;\n      }\n      dVar2 = p[image->channel_map[2].offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cbe0;\nLAB_0013cf00:\n        q[4] = uVar10;\n        q[5] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf00;\nLAB_0013cbe0:\n        q[4] = uVar11;\n        q[5] = uVar12;\n      }\n      if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n         (dVar2 = p[image->channel_map[3].offset], dVar2 <= 0.0)) {\n        uVar11 = '\0';\n        uVar15 = '\0';\n        uVar10 = '\0';\n        uVar12 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca13;\nLAB_0013cc16:\n        uVar18 = '\0';\n        q[6] = uVar10;\n        q[7] = uVar12;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits != BlendPixelTrait) goto LAB_0013ca40;\nLAB_0013cc36:\n        uVar18 = '\0';\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)p[pPVar16[4].offset];\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          uVar18 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        uVar18 = (uchar)((uint)iVar13 >> 8);\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca4a;\nLAB_0013cca5:\n        q[8] = (uchar)iVar13;\n        q[9] = uVar18;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cc16;\nLAB_0013ca13:\n        uVar18 = '\0';\n        q[6] = uVar15;\n        q[7] = uVar11;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cca5;\nLAB_0013ca4a:\n        q[9] = (uchar)iVar13;\n        q[8] = uVar18;\n      }\n      local_64 = local_64 + 1;\n      q = q + quantum_info->pad + 10;\n      p = p + image->number_channels;\n      if (local_64 == (int)number_pixels) {\n        return;\n      }\n    } while( true );\n  }" if (parenthesized_expression "(uVar17 == 0x10)" ( (binary_expression "uVar17 == 0x10" identifier == number_literal) )) (compound_statement "{\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = (uchar)uVar5;\n          q[1] = uVar10;\n        }\n        else {\n          *q = uVar10;\n          q[1] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[2] = (uchar)uVar5;\n          q[3] = uVar10;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = (uchar)uVar5;\n          q[5] = uVar10;\n        }\n        else {\n          q[5] = (uchar)uVar5;\n          q[4] = uVar10;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset]);\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[6] = (uchar)uVar5;\n          q[7] = uVar10;\n        }\n        else {\n          q[6] = uVar10;\n          q[7] = (uchar)uVar5;\n        }\n        fVar1 = 0.0;\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * (float)_DAT_0029f148;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = (uchar)uVar5;\n          q[9] = uVar10;\n        }\n        else {\n          q[8] = uVar10;\n          q[9] = (uchar)uVar5;\n        }\n        q = q + quantum_info->pad + 10;\n        local_64 = local_64 + 1;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n    if ((int)number_pixels < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = p[image->channel_map->offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar11 = '\0';\n        uVar12 = '\0';\n        uVar15 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013caf0;\nLAB_0013cf50:\n        *q = uVar10;\n        q[1] = uVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf50;\nLAB_0013caf0:\n        *q = uVar15;\n        q[1] = uVar11;\n      }\n      dVar2 = p[image->channel_map[1].offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cb64;\nLAB_0013cf28:\n        q[2] = uVar10;\n        q[3] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf28;\nLAB_0013cb64:\n        q[3] = uVar12;\n        q[2] = uVar11;\n      }\n      dVar2 = p[image->channel_map[2].offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cbe0;\nLAB_0013cf00:\n        q[4] = uVar10;\n        q[5] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf00;\nLAB_0013cbe0:\n        q[4] = uVar11;\n        q[5] = uVar12;\n      }\n      if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n         (dVar2 = p[image->channel_map[3].offset], dVar2 <= 0.0)) {\n        uVar11 = '\0';\n        uVar15 = '\0';\n        uVar10 = '\0';\n        uVar12 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca13;\nLAB_0013cc16:\n        uVar18 = '\0';\n        q[6] = uVar10;\n        q[7] = uVar12;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits != BlendPixelTrait) goto LAB_0013ca40;\nLAB_0013cc36:\n        uVar18 = '\0';\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)p[pPVar16[4].offset];\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          uVar18 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        uVar18 = (uchar)((uint)iVar13 >> 8);\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca4a;\nLAB_0013cca5:\n        q[8] = (uchar)iVar13;\n        q[9] = uVar18;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cc16;\nLAB_0013ca13:\n        uVar18 = '\0';\n        q[6] = uVar15;\n        q[7] = uVar11;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cca5;\nLAB_0013ca4a:\n        q[9] = (uchar)iVar13;\n        q[8] = uVar18;\n      }\n      local_64 = local_64 + 1;\n      q = q + quantum_info->pad + 10;\n      p = p + image->number_channels;\n      if (local_64 == (int)number_pixels) {\n        return;\n      }\n    } while( true );\n  }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = (uchar)uVar5;\n          q[1] = uVar10;\n        }\n        else {\n          *q = uVar10;\n          q[1] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[2] = (uchar)uVar5;\n          q[3] = uVar10;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = (uchar)uVar5;\n          q[5] = uVar10;\n        }\n        else {\n          q[5] = (uchar)uVar5;\n          q[4] = uVar10;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset]);\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[6] = (uchar)uVar5;\n          q[7] = uVar10;\n        }\n        else {\n          q[6] = uVar10;\n          q[7] = (uchar)uVar5;\n        }\n        fVar1 = 0.0;\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * (float)_DAT_0029f148;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = (uchar)uVar5;\n          q[9] = uVar10;\n        }\n        else {\n          q[8] = uVar10;\n          q[9] = (uchar)uVar5;\n        }\n        q = q + quantum_info->pad + 10;\n        local_64 = local_64 + 1;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\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 ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = (uchar)uVar5;\n          q[1] = uVar10;\n        }\n        else {\n          *q = uVar10;\n          q[1] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[2] = (uchar)uVar5;\n          q[3] = uVar10;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = (uchar)uVar5;\n          q[5] = uVar10;\n        }\n        else {\n          q[5] = (uchar)uVar5;\n          q[4] = uVar10;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset]);\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[6] = (uchar)uVar5;\n          q[7] = uVar10;\n        }\n        else {\n          q[6] = uVar10;\n          q[7] = (uchar)uVar5;\n        }\n        fVar1 = 0.0;\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * (float)_DAT_0029f148;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = (uchar)uVar5;\n          q[9] = uVar10;\n        }\n        else {\n          q[8] = uVar10;\n          q[9] = (uchar)uVar5;\n        }\n        q = q + quantum_info->pad + 10;\n        local_64 = local_64 + 1;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }" { (if_statement "if ((int)number_pixels < 1) {\n        return;\n      }" if (parenthesized_expression "((int)number_pixels < 1)" ( (binary_expression "(int)number_pixels < 1" (cast_expression "(int)number_pixels" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = (uchar)uVar5;\n          q[1] = uVar10;\n        }\n        else {\n          *q = uVar10;\n          q[1] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[2] = (uchar)uVar5;\n          q[3] = uVar10;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = (uchar)uVar5;\n          q[5] = uVar10;\n        }\n        else {\n          q[5] = (uchar)uVar5;\n          q[4] = uVar10;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset]);\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[6] = (uchar)uVar5;\n          q[7] = uVar10;\n        }\n        else {\n          q[6] = uVar10;\n          q[7] = (uchar)uVar5;\n        }\n        fVar1 = 0.0;\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * (float)_DAT_0029f148;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = (uchar)uVar5;\n          q[9] = uVar10;\n        }\n        else {\n          q[8] = uVar10;\n          q[9] = (uchar)uVar5;\n        }\n        q = q + quantum_info->pad + 10;\n        local_64 = local_64 + 1;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);" do (compound_statement "{\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = (uchar)uVar5;\n          q[1] = uVar10;\n        }\n        else {\n          *q = uVar10;\n          q[1] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[2] = (uchar)uVar5;\n          q[3] = uVar10;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = (uchar)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset]));\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = (uchar)uVar5;\n          q[5] = uVar10;\n        }\n        else {\n          q[5] = (uchar)uVar5;\n          q[4] = uVar10;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset]);\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[6] = (uchar)uVar5;\n          q[7] = uVar10;\n        }\n        else {\n          q[6] = uVar10;\n          q[7] = (uchar)uVar5;\n        }\n        fVar1 = 0.0;\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * (float)_DAT_0029f148;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar1);\n        uVar10 = (uchar)(uVar5 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = (uchar)uVar5;\n          q[9] = uVar10;\n        }\n        else {\n          q[8] = uVar10;\n          q[9] = (uchar)uVar5;\n        }\n        q = q + quantum_info->pad + 10;\n        local_64 = local_64 + 1;\n        p = p + image->number_channels;\n      }" { (expression_statement "uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset]));" (assignment_expression "uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset]))" identifier = (call_expression "SinglePrecisionToHalf\n                          ((float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset]))" identifier (argument_list "((float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset]))" ( (cast_expression "(float)((longdouble)dVar2 * (longdouble)p[image->channel_map->offset])" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar2 * (longdouble)p[image->channel_map->offset])" ( (binary_expression "(longdouble)dVar2 * (longdouble)p[image->channel_map->offset]" (cast_expression "(longdouble)dVar2" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)p[image->channel_map->offset]" ( (type_descriptor "longdouble" type_identifier) ) (subscript_expression "p[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ]))) ))) )))) ;) (expression_statement "uVar10 = (uchar)(uVar5 >> 8);" (assignment_expression "uVar10 = (uchar)(uVar5 >> 8)" identifier = (call_expression "(uchar)(uVar5 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar5 >> 8)" ( (binary_expression "uVar5 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n          *q = (uchar)uVar5;\n          q[1] = uVar10;\n        }\n        else {\n          *q = uVar10;\n          q[1] = (uchar)uVar5;\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          *q = (uchar)uVar5;\n          q[1] = uVar10;\n        }" { (expression_statement "*q = (uchar)uVar5;" (assignment_expression "*q = (uchar)uVar5" (pointer_expression "*q" * identifier) = (cast_expression "(uchar)uVar5" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "q[1] = uVar10;" (assignment_expression "q[1] = uVar10" (subscript_expression "q[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *q = uVar10;\n          q[1] = (uchar)uVar5;\n        }" else (compound_statement "{\n          *q = uVar10;\n          q[1] = (uchar)uVar5;\n        }" { (expression_statement "*q = uVar10;" (assignment_expression "*q = uVar10" (pointer_expression "*q" * identifier) = identifier) ;) (expression_statement "q[1] = (uchar)uVar5;" (assignment_expression "q[1] = (uchar)uVar5" (subscript_expression "q[1]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar5" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset]));" (assignment_expression "uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset]))" identifier = (call_expression "SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset]))" identifier (argument_list "((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset]))" ( (cast_expression "(float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset])" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset])" ( (binary_expression "(longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[1].offset]" (cast_expression "(longdouble)_DAT_0029f148" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)p[image->channel_map[1].offset]" ( (type_descriptor "longdouble" type_identifier) ) (subscript_expression "p[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 "uVar10 = (uchar)(uVar5 >> 8);" (assignment_expression "uVar10 = (uchar)(uVar5 >> 8)" identifier = (call_expression "(uchar)(uVar5 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar5 >> 8)" ( (binary_expression "uVar5 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n          q[2] = (uchar)uVar5;\n          q[3] = uVar10;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = (uchar)uVar5;\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          q[2] = (uchar)uVar5;\n          q[3] = uVar10;\n        }" { (expression_statement "q[2] = (uchar)uVar5;" (assignment_expression "q[2] = (uchar)uVar5" (subscript_expression "q[2]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar5" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "q[3] = uVar10;" (assignment_expression "q[3] = uVar10" (subscript_expression "q[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          q[2] = uVar10;\n          q[3] = (uchar)uVar5;\n        }" else (compound_statement "{\n          q[2] = uVar10;\n          q[3] = (uchar)uVar5;\n        }" { (expression_statement "q[2] = uVar10;" (assignment_expression "q[2] = uVar10" (subscript_expression "q[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[3] = (uchar)uVar5;" (assignment_expression "q[3] = (uchar)uVar5" (subscript_expression "q[3]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar5" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset]));" (assignment_expression "uVar5 = SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset]))" identifier = (call_expression "SinglePrecisionToHalf\n                          ((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset]))" identifier (argument_list "((float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset]))" ( (cast_expression "(float)((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset])" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset])" ( (binary_expression "(longdouble)_DAT_0029f148 *\n                                  (longdouble)p[image->channel_map[2].offset]" (cast_expression "(longdouble)_DAT_0029f148" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)p[image->channel_map[2].offset]" ( (type_descriptor "longdouble" type_identifier) ) (subscript_expression "p[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 "uVar10 = (uchar)(uVar5 >> 8);" (assignment_expression "uVar10 = (uchar)(uVar5 >> 8)" identifier = (call_expression "(uchar)(uVar5 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar5 >> 8)" ( (binary_expression "uVar5 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n          q[4] = (uchar)uVar5;\n          q[5] = uVar10;\n        }\n        else {\n          q[5] = (uchar)uVar5;\n          q[4] = uVar10;\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          q[4] = (uchar)uVar5;\n          q[5] = uVar10;\n        }" { (expression_statement "q[4] = (uchar)uVar5;" (assignment_expression "q[4] = (uchar)uVar5" (subscript_expression "q[4]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar5" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "q[5] = uVar10;" (assignment_expression "q[5] = uVar10" (subscript_expression "q[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          q[5] = (uchar)uVar5;\n          q[4] = uVar10;\n        }" else (compound_statement "{\n          q[5] = (uchar)uVar5;\n          q[4] = uVar10;\n        }" { (expression_statement "q[5] = (uchar)uVar5;" (assignment_expression "q[5] = (uchar)uVar5" (subscript_expression "q[5]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar5" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "q[4] = uVar10;" (assignment_expression "q[4] = uVar10" (subscript_expression "q[4]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 * (longdouble)p[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)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset]);\n        }" else (compound_statement "{\n          fVar1 = (float)((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset]);\n        }" { (expression_statement "fVar1 = (float)((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset]);" (assignment_expression "fVar1 = (float)((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset])" identifier = (cast_expression "(float)((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset])" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset])" ( (binary_expression "(longdouble)_DAT_0029f148 * (longdouble)p[image->channel_map[3].offset]" (cast_expression "(longdouble)_DAT_0029f148" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)p[image->channel_map[3].offset]" ( (type_descriptor "longdouble" type_identifier) ) (subscript_expression "p[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 "uVar5 = SinglePrecisionToHalf(fVar1);" (assignment_expression "uVar5 = SinglePrecisionToHalf(fVar1)" identifier = (call_expression "SinglePrecisionToHalf(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "uVar10 = (uchar)(uVar5 >> 8);" (assignment_expression "uVar10 = (uchar)(uVar5 >> 8)" identifier = (call_expression "(uchar)(uVar5 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar5 >> 8)" ( (binary_expression "uVar5 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n          q[6] = (uchar)uVar5;\n          q[7] = uVar10;\n        }\n        else {\n          q[6] = uVar10;\n          q[7] = (uchar)uVar5;\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          q[6] = (uchar)uVar5;\n          q[7] = uVar10;\n        }" { (expression_statement "q[6] = (uchar)uVar5;" (assignment_expression "q[6] = (uchar)uVar5" (subscript_expression "q[6]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar5" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "q[7] = uVar10;" (assignment_expression "q[7] = uVar10" (subscript_expression "q[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          q[6] = uVar10;\n          q[7] = (uchar)uVar5;\n        }" else (compound_statement "{\n          q[6] = uVar10;\n          q[7] = (uchar)uVar5;\n        }" { (expression_statement "q[6] = uVar10;" (assignment_expression "q[6] = uVar10" (subscript_expression "q[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[7] = (uchar)uVar5;" (assignment_expression "q[7] = (uchar)uVar5" (subscript_expression "q[7]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar5" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) }))) (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)p[image->channel_map[4].offset]) * (float)_DAT_0029f148;\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)p[image->channel_map[4].offset]) * (float)_DAT_0029f148;\n        }" { (expression_statement "fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * (float)_DAT_0029f148;" (assignment_expression "fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * (float)_DAT_0029f148" identifier = (binary_expression "(DAT_0029f710 - (float)p[image->channel_map[4].offset]) * (float)_DAT_0029f148" (parenthesized_expression "(DAT_0029f710 - (float)p[image->channel_map[4].offset])" ( (binary_expression "DAT_0029f710 - (float)p[image->channel_map[4].offset]" identifier - (cast_expression "(float)p[image->channel_map[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "p[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)_DAT_0029f148" ( (type_descriptor "float" primitive_type) ) identifier))) ;) })) (expression_statement "uVar5 = SinglePrecisionToHalf(fVar1);" (assignment_expression "uVar5 = SinglePrecisionToHalf(fVar1)" identifier = (call_expression "SinglePrecisionToHalf(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "uVar10 = (uchar)(uVar5 >> 8);" (assignment_expression "uVar10 = (uchar)(uVar5 >> 8)" identifier = (call_expression "(uchar)(uVar5 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(uVar5 >> 8)" ( (binary_expression "uVar5 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n          q[8] = (uchar)uVar5;\n          q[9] = uVar10;\n        }\n        else {\n          q[8] = uVar10;\n          q[9] = (uchar)uVar5;\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          q[8] = (uchar)uVar5;\n          q[9] = uVar10;\n        }" { (expression_statement "q[8] = (uchar)uVar5;" (assignment_expression "q[8] = (uchar)uVar5" (subscript_expression "q[8]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar5" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "q[9] = uVar10;" (assignment_expression "q[9] = uVar10" (subscript_expression "q[9]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          q[8] = uVar10;\n          q[9] = (uchar)uVar5;\n        }" else (compound_statement "{\n          q[8] = uVar10;\n          q[9] = (uchar)uVar5;\n        }" { (expression_statement "q[8] = uVar10;" (assignment_expression "q[8] = uVar10" (subscript_expression "q[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[9] = (uchar)uVar5;" (assignment_expression "q[9] = (uchar)uVar5" (subscript_expression "q[9]" identifier [ number_literal ]) = (cast_expression "(uchar)uVar5" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) }))) (expression_statement "q = q + quantum_info->pad + 10;" (assignment_expression "q = q + quantum_info->pad + 10" identifier = (binary_expression "q + quantum_info->pad + 10" (binary_expression "q + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "p = p + image->number_channels;" (assignment_expression "p = p + image->number_channels" identifier = (binary_expression "p + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(local_64 != (int)number_pixels)" ( (binary_expression "local_64 != (int)number_pixels" identifier != (cast_expression "(int)number_pixels" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (return_statement "return;" return ;) })) (if_statement "if ((int)number_pixels < 1) {\n      return;\n    }" if (parenthesized_expression "((int)number_pixels < 1)" ( (binary_expression "(int)number_pixels < 1" (cast_expression "(int)number_pixels" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n      dVar2 = p[image->channel_map->offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar11 = '\0';\n        uVar12 = '\0';\n        uVar15 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013caf0;\nLAB_0013cf50:\n        *q = uVar10;\n        q[1] = uVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf50;\nLAB_0013caf0:\n        *q = uVar15;\n        q[1] = uVar11;\n      }\n      dVar2 = p[image->channel_map[1].offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cb64;\nLAB_0013cf28:\n        q[2] = uVar10;\n        q[3] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf28;\nLAB_0013cb64:\n        q[3] = uVar12;\n        q[2] = uVar11;\n      }\n      dVar2 = p[image->channel_map[2].offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cbe0;\nLAB_0013cf00:\n        q[4] = uVar10;\n        q[5] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf00;\nLAB_0013cbe0:\n        q[4] = uVar11;\n        q[5] = uVar12;\n      }\n      if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n         (dVar2 = p[image->channel_map[3].offset], dVar2 <= 0.0)) {\n        uVar11 = '\0';\n        uVar15 = '\0';\n        uVar10 = '\0';\n        uVar12 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca13;\nLAB_0013cc16:\n        uVar18 = '\0';\n        q[6] = uVar10;\n        q[7] = uVar12;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits != BlendPixelTrait) goto LAB_0013ca40;\nLAB_0013cc36:\n        uVar18 = '\0';\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)p[pPVar16[4].offset];\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          uVar18 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        uVar18 = (uchar)((uint)iVar13 >> 8);\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca4a;\nLAB_0013cca5:\n        q[8] = (uchar)iVar13;\n        q[9] = uVar18;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cc16;\nLAB_0013ca13:\n        uVar18 = '\0';\n        q[6] = uVar15;\n        q[7] = uVar11;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cca5;\nLAB_0013ca4a:\n        q[9] = (uchar)iVar13;\n        q[8] = uVar18;\n      }\n      local_64 = local_64 + 1;\n      q = q + quantum_info->pad + 10;\n      p = p + image->number_channels;\n      if (local_64 == (int)number_pixels) {\n        return;\n      }\n    } while( true );" do (compound_statement "{\n      dVar2 = p[image->channel_map->offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar11 = '\0';\n        uVar12 = '\0';\n        uVar15 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013caf0;\nLAB_0013cf50:\n        *q = uVar10;\n        q[1] = uVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf50;\nLAB_0013caf0:\n        *q = uVar15;\n        q[1] = uVar11;\n      }\n      dVar2 = p[image->channel_map[1].offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cb64;\nLAB_0013cf28:\n        q[2] = uVar10;\n        q[3] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf28;\nLAB_0013cb64:\n        q[3] = uVar12;\n        q[2] = uVar11;\n      }\n      dVar2 = p[image->channel_map[2].offset];\n      if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cbe0;\nLAB_0013cf00:\n        q[4] = uVar10;\n        q[5] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf00;\nLAB_0013cbe0:\n        q[4] = uVar11;\n        q[5] = uVar12;\n      }\n      if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n         (dVar2 = p[image->channel_map[3].offset], dVar2 <= 0.0)) {\n        uVar11 = '\0';\n        uVar15 = '\0';\n        uVar10 = '\0';\n        uVar12 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca13;\nLAB_0013cc16:\n        uVar18 = '\0';\n        q[6] = uVar10;\n        q[7] = uVar12;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits != BlendPixelTrait) goto LAB_0013ca40;\nLAB_0013cc36:\n        uVar18 = '\0';\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)p[pPVar16[4].offset];\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          uVar18 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        uVar18 = (uchar)((uint)iVar13 >> 8);\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca4a;\nLAB_0013cca5:\n        q[8] = (uchar)iVar13;\n        q[9] = uVar18;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cc16;\nLAB_0013ca13:\n        uVar18 = '\0';\n        q[6] = uVar15;\n        q[7] = uVar11;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cca5;\nLAB_0013ca4a:\n        q[9] = (uchar)iVar13;\n        q[8] = uVar18;\n      }\n      local_64 = local_64 + 1;\n      q = q + quantum_info->pad + 10;\n      p = p + image->number_channels;\n      if (local_64 == (int)number_pixels) {\n        return;\n      }\n    }" { (expression_statement "dVar2 = p[image->channel_map->offset];" (assignment_expression "dVar2 = p[image->channel_map->offset]" identifier = (subscript_expression "p[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ])) ;) (if_statement "if (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar11 = '\0';\n        uVar12 = '\0';\n        uVar15 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013caf0;\nLAB_0013cf50:\n        *q = uVar10;\n        q[1] = uVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf50;\nLAB_0013caf0:\n        *q = uVar15;\n        q[1] = uVar11;\n      }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        uVar10 = '\0';\n        uVar11 = '\0';\n        uVar12 = '\0';\n        uVar15 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013caf0;\nLAB_0013cf50:\n        *q = uVar10;\n        q[1] = uVar12;\n      }" { (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar11 = '\0';" (assignment_expression "uVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar12 = '\0';" (assignment_expression "uVar12 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar15 = '\0';" (assignment_expression "uVar15 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (quantum_info->endian != LSBEndian) goto LAB_0013caf0;" if (parenthesized_expression "(quantum_info->endian != LSBEndian)" ( (binary_expression "quantum_info->endian != LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_0013caf0;" goto statement_identifier ;)) (labeled_statement "LAB_0013cf50:\n        *q = uVar10;" statement_identifier : (expression_statement "*q = uVar10;" (assignment_expression "*q = uVar10" (pointer_expression "*q" * identifier) = identifier) ;)) (expression_statement "q[1] = uVar12;" (assignment_expression "q[1] = uVar12" (subscript_expression "q[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf50;\nLAB_0013caf0:\n        *q = uVar15;\n        q[1] = uVar11;\n      }" else (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf50;\nLAB_0013caf0:\n        *q = uVar15;\n        q[1] = uVar11;\n      }" { (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" ( (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }" else (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }" { (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uVar15 = (uchar)((uint)iVar13 >> 8);" (assignment_expression "uVar15 = (uchar)((uint)iVar13 >> 8)" identifier = (call_expression "(uchar)((uint)iVar13 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) (expression_statement "uVar11 = (uchar)iVar13;" (assignment_expression "uVar11 = (uchar)iVar13" identifier = (cast_expression "(uchar)iVar13" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "uVar10 = uVar11;" (assignment_expression "uVar10 = uVar11" identifier = identifier) ;) (expression_statement "uVar12 = uVar15;" (assignment_expression "uVar12 = uVar15" identifier = identifier) ;) (if_statement "if (quantum_info->endian == LSBEndian) goto LAB_0013cf50;" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_0013cf50;" goto statement_identifier ;)) (labeled_statement "LAB_0013caf0:\n        *q = uVar15;" statement_identifier : (expression_statement "*q = uVar15;" (assignment_expression "*q = uVar15" (pointer_expression "*q" * identifier) = identifier) ;)) (expression_statement "q[1] = uVar11;" (assignment_expression "q[1] = uVar11" (subscript_expression "q[1]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = p[image->channel_map[1].offset];" (assignment_expression "dVar2 = p[image->channel_map[1].offset]" identifier = (subscript_expression "p[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 (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cb64;\nLAB_0013cf28:\n        q[2] = uVar10;\n        q[3] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf28;\nLAB_0013cb64:\n        q[3] = uVar12;\n        q[2] = uVar11;\n      }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cb64;\nLAB_0013cf28:\n        q[2] = uVar10;\n        q[3] = uVar11;\n      }" { (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar12 = '\0';" (assignment_expression "uVar12 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar11 = '\0';" (assignment_expression "uVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (quantum_info->endian != LSBEndian) goto LAB_0013cb64;" if (parenthesized_expression "(quantum_info->endian != LSBEndian)" ( (binary_expression "quantum_info->endian != LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_0013cb64;" goto statement_identifier ;)) (labeled_statement "LAB_0013cf28:\n        q[2] = uVar10;" statement_identifier : (expression_statement "q[2] = uVar10;" (assignment_expression "q[2] = uVar10" (subscript_expression "q[2]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "q[3] = uVar11;" (assignment_expression "q[3] = uVar11" (subscript_expression "q[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf28;\nLAB_0013cb64:\n        q[3] = uVar12;\n        q[2] = uVar11;\n      }" else (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf28;\nLAB_0013cb64:\n        q[3] = uVar12;\n        q[2] = uVar11;\n      }" { (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" ( (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }" else (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }" { (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uVar11 = (uchar)((uint)iVar13 >> 8);" (assignment_expression "uVar11 = (uchar)((uint)iVar13 >> 8)" identifier = (call_expression "(uchar)((uint)iVar13 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) (expression_statement "uVar12 = (uchar)iVar13;" (assignment_expression "uVar12 = (uchar)iVar13" identifier = (cast_expression "(uchar)iVar13" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "uVar10 = uVar12;" (assignment_expression "uVar10 = uVar12" identifier = identifier) ;) (if_statement "if (quantum_info->endian == LSBEndian) goto LAB_0013cf28;" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_0013cf28;" goto statement_identifier ;)) (labeled_statement "LAB_0013cb64:\n        q[3] = uVar12;" statement_identifier : (expression_statement "q[3] = uVar12;" (assignment_expression "q[3] = uVar12" (subscript_expression "q[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "q[2] = uVar11;" (assignment_expression "q[2] = uVar11" (subscript_expression "q[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = p[image->channel_map[2].offset];" (assignment_expression "dVar2 = p[image->channel_map[2].offset]" identifier = (subscript_expression "p[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 (dVar2 <= 0.0) {\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cbe0;\nLAB_0013cf00:\n        q[4] = uVar10;\n        q[5] = uVar11;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf00;\nLAB_0013cbe0:\n        q[4] = uVar11;\n        q[5] = uVar12;\n      }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        uVar10 = '\0';\n        uVar12 = '\0';\n        uVar11 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013cbe0;\nLAB_0013cf00:\n        q[4] = uVar10;\n        q[5] = uVar11;\n      }" { (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar12 = '\0';" (assignment_expression "uVar12 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar11 = '\0';" (assignment_expression "uVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (quantum_info->endian != LSBEndian) goto LAB_0013cbe0;" if (parenthesized_expression "(quantum_info->endian != LSBEndian)" ( (binary_expression "quantum_info->endian != LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_0013cbe0;" goto statement_identifier ;)) (labeled_statement "LAB_0013cf00:\n        q[4] = uVar10;" statement_identifier : (expression_statement "q[4] = uVar10;" (assignment_expression "q[4] = uVar10" (subscript_expression "q[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "q[5] = uVar11;" (assignment_expression "q[5] = uVar11" (subscript_expression "q[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf00;\nLAB_0013cbe0:\n        q[4] = uVar11;\n        q[5] = uVar12;\n      }" else (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar12 = (uchar)iVar13;\n        uVar10 = uVar12;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cf00;\nLAB_0013cbe0:\n        q[4] = uVar11;\n        q[5] = uVar12;\n      }" { (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" ( (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          uVar11 = 0xff;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }" else (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar11 = (uchar)((uint)iVar13 >> 8);\n        }" { (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uVar11 = (uchar)((uint)iVar13 >> 8);" (assignment_expression "uVar11 = (uchar)((uint)iVar13 >> 8)" identifier = (call_expression "(uchar)((uint)iVar13 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) (expression_statement "uVar12 = (uchar)iVar13;" (assignment_expression "uVar12 = (uchar)iVar13" identifier = (cast_expression "(uchar)iVar13" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "uVar10 = uVar12;" (assignment_expression "uVar10 = uVar12" identifier = identifier) ;) (if_statement "if (quantum_info->endian == LSBEndian) goto LAB_0013cf00;" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_0013cf00;" goto statement_identifier ;)) (labeled_statement "LAB_0013cbe0:\n        q[4] = uVar11;" statement_identifier : (expression_statement "q[4] = uVar11;" (assignment_expression "q[4] = uVar11" (subscript_expression "q[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "q[5] = uVar12;" (assignment_expression "q[5] = uVar12" (subscript_expression "q[5]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n         (dVar2 = p[image->channel_map[3].offset], dVar2 <= 0.0)) {\n        uVar11 = '\0';\n        uVar15 = '\0';\n        uVar10 = '\0';\n        uVar12 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca13;\nLAB_0013cc16:\n        uVar18 = '\0';\n        q[6] = uVar10;\n        q[7] = uVar12;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits != BlendPixelTrait) goto LAB_0013ca40;\nLAB_0013cc36:\n        uVar18 = '\0';\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)p[pPVar16[4].offset];\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          uVar18 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        uVar18 = (uchar)((uint)iVar13 >> 8);\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca4a;\nLAB_0013cca5:\n        q[8] = (uchar)iVar13;\n        q[9] = uVar18;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cc16;\nLAB_0013ca13:\n        uVar18 = '\0';\n        q[6] = uVar15;\n        q[7] = uVar11;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cca5;\nLAB_0013ca4a:\n        q[9] = (uchar)iVar13;\n        q[8] = uVar18;\n      }" if (parenthesized_expression "((image->channel_map[3].traits == UndefinedPixelTrait) ||\n         (dVar2 = p[image->channel_map[3].offset], dVar2 <= 0.0))" ( (binary_expression "(image->channel_map[3].traits == UndefinedPixelTrait) ||\n         (dVar2 = p[image->channel_map[3].offset], dVar2 <= 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 "(dVar2 = p[image->channel_map[3].offset], dVar2 <= 0.0)" ( (comma_expression "dVar2 = p[image->channel_map[3].offset], dVar2 <= 0.0" (assignment_expression "dVar2 = p[image->channel_map[3].offset]" identifier = (subscript_expression "p[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 "dVar2 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n        uVar11 = '\0';\n        uVar15 = '\0';\n        uVar10 = '\0';\n        uVar12 = '\0';\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca13;\nLAB_0013cc16:\n        uVar18 = '\0';\n        q[6] = uVar10;\n        q[7] = uVar12;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits != BlendPixelTrait) goto LAB_0013ca40;\nLAB_0013cc36:\n        uVar18 = '\0';\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)p[pPVar16[4].offset];\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          uVar18 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        uVar18 = (uchar)((uint)iVar13 >> 8);\n        if (quantum_info->endian != LSBEndian) goto LAB_0013ca4a;\nLAB_0013cca5:\n        q[8] = (uchar)iVar13;\n        q[9] = uVar18;\n      }" { (expression_statement "uVar11 = '\0';" (assignment_expression "uVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar15 = '\0';" (assignment_expression "uVar15 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar12 = '\0';" (assignment_expression "uVar12 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (quantum_info->endian != LSBEndian) goto LAB_0013ca13;" if (parenthesized_expression "(quantum_info->endian != LSBEndian)" ( (binary_expression "quantum_info->endian != LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_0013ca13;" goto statement_identifier ;)) (labeled_statement "LAB_0013cc16:\n        uVar18 = '\0';" statement_identifier : (expression_statement "uVar18 = '\0';" (assignment_expression "uVar18 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "q[6] = uVar10;" (assignment_expression "q[6] = uVar10" (subscript_expression "q[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[7] = uVar12;" (assignment_expression "q[7] = uVar12" (subscript_expression "q[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pPVar16 = image->channel_map;" (assignment_expression "pPVar16 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (pPVar16[4].traits != BlendPixelTrait) goto LAB_0013ca40;" if (parenthesized_expression "(pPVar16[4].traits != BlendPixelTrait)" ( (binary_expression "pPVar16[4].traits != BlendPixelTrait" (field_expression "pPVar16[4].traits" (subscript_expression "pPVar16[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) (goto_statement "goto LAB_0013ca40;" goto statement_identifier ;)) (labeled_statement "LAB_0013cc36:\n        uVar18 = '\0';" statement_identifier : (expression_statement "uVar18 = '\0';" (assignment_expression "uVar18 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "fVar1 = DAT_0029f710 - (float)p[pPVar16[4].offset];" (assignment_expression "fVar1 = DAT_0029f710 - (float)p[pPVar16[4].offset]" identifier = (binary_expression "DAT_0029f710 - (float)p[pPVar16[4].offset]" identifier - (cast_expression "(float)p[pPVar16[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "p[pPVar16[4].offset]" identifier [ (field_expression "pPVar16[4].offset" (subscript_expression "pPVar16[4]" identifier [ number_literal ]) . field_identifier) ])))) ;) (if_statement "if (fVar1 <= 0.0) goto LAB_0013ca40;" if (parenthesized_expression "(fVar1 <= 0.0)" ( (binary_expression "fVar1 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_0013ca40;" goto statement_identifier ;)) (if_statement "if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          uVar18 = 0xff;\n          goto LAB_0013ca40;\n        }" if (parenthesized_expression "(DAT_0029f710 <= fVar1)" ( (binary_expression "DAT_0029f710 <= fVar1" identifier <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          uVar18 = 0xff;\n          goto LAB_0013ca40;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "uVar18 = 0xff;" (assignment_expression "uVar18 = 0xff" identifier = number_literal) ;) (goto_statement "goto LAB_0013ca40;" goto statement_identifier ;) })) (expression_statement "iVar13 = (int)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "iVar13 = (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 "uVar18 = (uchar)((uint)iVar13 >> 8);" (assignment_expression "uVar18 = (uchar)((uint)iVar13 >> 8)" identifier = (call_expression "(uchar)((uint)iVar13 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian != LSBEndian) goto LAB_0013ca4a;" if (parenthesized_expression "(quantum_info->endian != LSBEndian)" ( (binary_expression "quantum_info->endian != LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_0013ca4a;" goto statement_identifier ;)) (labeled_statement "LAB_0013cca5:\n        q[8] = (uchar)iVar13;" statement_identifier : (expression_statement "q[8] = (uchar)iVar13;" (assignment_expression "q[8] = (uchar)iVar13" (subscript_expression "q[8]" identifier [ number_literal ]) = (cast_expression "(uchar)iVar13" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;)) (expression_statement "q[9] = uVar18;" (assignment_expression "q[9] = uVar18" (subscript_expression "q[9]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cc16;\nLAB_0013ca13:\n        uVar18 = '\0';\n        q[6] = uVar15;\n        q[7] = uVar11;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cca5;\nLAB_0013ca4a:\n        q[9] = (uchar)iVar13;\n        q[8] = uVar18;\n      }" else (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }\n        uVar11 = (uchar)iVar13;\n        uVar10 = uVar11;\n        uVar12 = uVar15;\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cc16;\nLAB_0013ca13:\n        uVar18 = '\0';\n        q[6] = uVar15;\n        q[7] = uVar11;\n        pPVar16 = image->channel_map;\n        iVar13 = 0;\n        if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cca5;\nLAB_0013ca4a:\n        q[9] = (uchar)iVar13;\n        q[8] = uVar18;\n      }" { (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" ( (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          uVar15 = 0xff;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }" else (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          uVar15 = (uchar)((uint)iVar13 >> 8);\n        }" { (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uVar15 = (uchar)((uint)iVar13 >> 8);" (assignment_expression "uVar15 = (uchar)((uint)iVar13 >> 8)" identifier = (call_expression "(uchar)((uint)iVar13 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) (expression_statement "uVar11 = (uchar)iVar13;" (assignment_expression "uVar11 = (uchar)iVar13" identifier = (cast_expression "(uchar)iVar13" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "uVar10 = uVar11;" (assignment_expression "uVar10 = uVar11" identifier = identifier) ;) (expression_statement "uVar12 = uVar15;" (assignment_expression "uVar12 = uVar15" identifier = identifier) ;) (if_statement "if (quantum_info->endian == LSBEndian) goto LAB_0013cc16;" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_0013cc16;" goto statement_identifier ;)) (labeled_statement "LAB_0013ca13:\n        uVar18 = '\0';" statement_identifier : (expression_statement "uVar18 = '\0';" (assignment_expression "uVar18 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "q[6] = uVar15;" (assignment_expression "q[6] = uVar15" (subscript_expression "q[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[7] = uVar11;" (assignment_expression "q[7] = uVar11" (subscript_expression "q[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pPVar16 = image->channel_map;" (assignment_expression "pPVar16 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013cc36;" if (parenthesized_expression "(pPVar16[4].traits == BlendPixelTrait)" ( (binary_expression "pPVar16[4].traits == BlendPixelTrait" (field_expression "pPVar16[4].traits" (subscript_expression "pPVar16[4]" identifier [ number_literal ]) . field_identifier) == identifier) )) (goto_statement "goto LAB_0013cc36;" goto statement_identifier ;)) (labeled_statement "LAB_0013ca40:\n        if (quantum_info->endian == LSBEndian) goto LAB_0013cca5;" statement_identifier : (if_statement "if (quantum_info->endian == LSBEndian) goto LAB_0013cca5;" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_0013cca5;" goto statement_identifier ;))) (labeled_statement "LAB_0013ca4a:\n        q[9] = (uchar)iVar13;" statement_identifier : (expression_statement "q[9] = (uchar)iVar13;" (assignment_expression "q[9] = (uchar)iVar13" (subscript_expression "q[9]" identifier [ number_literal ]) = (cast_expression "(uchar)iVar13" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;)) (expression_statement "q[8] = uVar18;" (assignment_expression "q[8] = uVar18" (subscript_expression "q[8]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "q = q + quantum_info->pad + 10;" (assignment_expression "q = q + quantum_info->pad + 10" identifier = (binary_expression "q + quantum_info->pad + 10" (binary_expression "q + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) (expression_statement "p = p + image->number_channels;" (assignment_expression "p = p + image->number_channels" identifier = (binary_expression "p + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (if_statement "if (local_64 == (int)number_pixels) {\n        return;\n      }" if (parenthesized_expression "(local_64 == (int)number_pixels)" ( (binary_expression "local_64 == (int)number_pixels" identifier == (cast_expression "(int)number_pixels" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (uVar17 < 0x11) {\n    if (uVar17 == 8) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map->offset]) {\n          dVar2 = p[image->channel_map->offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *q = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[1].offset]) {\n          dVar2 = p[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[1] = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[2].offset]) {\n          dVar2 = p[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[2] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n           (0.0 < p[image->channel_map[3].offset])) {\n          dVar2 = p[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[3] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[4].traits == BlendPixelTrait) &&\n           (0.0 < DAT_0029f710 - (float)p[image->channel_map[4].offset])) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) / DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        q[4] = uVar10;\n        iVar13 = iVar13 + 1;\n        p = p + image->number_channels;\n        q = q + quantum_info->pad + 5;\n      } while (iVar13 != (int)number_pixels);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar17 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar17 == 0x20) {\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)number_pixels < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *q = SUB41(fVar1,0);\n            q[1] = uVar10;\n            q[2] = uVar11;\n            q[3] = uVar12;\n          }\n          else {\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[4] = SUB41(fVar1,0);\n            q[5] = uVar10;\n            q[6] = uVar11;\n            q[7] = uVar12;\n          }\n          else {\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[8] = SUB41(fVar1,0);\n            q[10] = uVar12;\n            q[9] = uVar10;\n            q[0xb] = uVar11;\n          }\n          else {\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[3].traits == UndefinedPixelTrait) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)p[image->channel_map[3].offset];\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0xc] = SUB41(fVar1,0);\n            q[0xe] = uVar11;\n            q[0xd] = uVar10;\n            q[0xf] = uVar12;\n          }\n          else {\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset];\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0x10] = SUB41(fVar1,0);\n            q[0x12] = uVar12;\n            q[0x11] = uVar10;\n            q[0x13] = uVar11;\n          }\n          else {\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          q = q + quantum_info->pad + 0x14;\n          p = p + image->number_channels;\n        } while (local_64 != (int)number_pixels);\n        return;\n      }\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        if (p[image->channel_map->offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;\n          if (dVar4 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[1] = uVar11;\n          *q = local_34;\n          q[2] = uVar10;\n          q[3] = uVar12;\n        }\n        else {\n          q[2] = uVar11;\n          *q = uVar12;\n          q[3] = local_34;\n          q[1] = uVar10;\n        }\n        if (p[image->channel_map[1].offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = local_34;\n          q[6] = uVar10;\n          q[5] = uVar11;\n          q[7] = uVar12;\n        }\n        else {\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[6] = uVar11;\n          q[7] = local_34;\n        }\n        if (p[image->channel_map[2].offset] <= 0.0) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar11 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[10] = uVar11;\n          q[0xb] = uVar12;\n          q[8] = uVar10;\n          q[9] = uVar15;\n        }\n        else {\n          q[9] = uVar11;\n          q[10] = uVar15;\n          q[8] = uVar12;\n          q[0xb] = uVar10;\n        }\n        if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n           (p[image->channel_map[3].offset] <= 0.0)) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0xc] = local_34;\n          q[0xe] = uVar10;\n          q[0xd] = uVar11;\n          q[0xf] = uVar12;\n        }\n        else {\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[0xe] = uVar11;\n          q[0xf] = local_34;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0)) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar12 = '\0';\n          uVar11 = '\0';\n        }\n        else {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0x12] = uVar12;\n          q[0x13] = uVar11;\n          q[0x10] = uVar10;\n          q[0x11] = uVar15;\n        }\n        else {\n          q[0x11] = uVar12;\n          q[0x12] = uVar15;\n          q[0x10] = uVar11;\n          q[0x13] = uVar10;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x14;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n    if (uVar17 != 0x40) goto LAB_0013d3f8;\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = p[image->channel_map->offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = SUB81(dVar2,0);\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[1] = local_8c;\n          q[2] = local_6c;\n          q[3] = local_74;\n          q[6] = local_7c;\n          q[7] = local_84;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = uVar12;\n          q[7] = SUB81(dVar2,0);\n          q[4] = local_74;\n          *q = local_84;\n          q[5] = local_6c;\n          q[1] = local_7c;\n          q[6] = local_8c;\n        }\n        dVar2 = p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = SUB81(dVar2,0);\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[9] = local_8c;\n          q[0xe] = local_7c;\n          q[0xf] = local_84;\n          q[10] = local_6c;\n          q[0xb] = local_74;\n        }\n        else {\n          q[0xb] = uVar12;\n          q[10] = uVar10;\n          q[0xf] = SUB81(dVar2,0);\n          q[0xc] = local_74;\n          q[8] = local_84;\n          q[0xd] = local_6c;\n          q[9] = local_7c;\n          q[0xe] = local_8c;\n        }\n        dVar2 = p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x14] = uVar10;\n          q[0x10] = SUB81(dVar2,0);\n          q[0x11] = local_8c;\n          q[0x12] = local_6c;\n          q[0x13] = local_74;\n          q[0x15] = uVar12;\n          q[0x16] = local_7c;\n          q[0x17] = local_84;\n        }\n        else {\n          q[0x13] = uVar10;\n          q[0x17] = SUB81(dVar2,0);\n          q[0x10] = local_84;\n          q[0x11] = local_7c;\n          q[0x12] = uVar12;\n          q[0x14] = local_74;\n          q[0x15] = local_6c;\n          q[0x16] = local_8c;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset];\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x1c] = uVar10;\n          q[0x1d] = uVar12;\n          q[0x18] = SUB81(dVar2,0);\n          q[0x19] = local_8c;\n          q[0x1e] = local_7c;\n          q[0x1a] = local_6c;\n          q[0x1b] = local_74;\n          q[0x1f] = local_84;\n        }\n        else {\n          q[0x1b] = uVar10;\n          q[0x1f] = SUB81(dVar2,0);\n          q[0x1c] = local_74;\n          q[0x18] = local_84;\n          q[0x1d] = local_6c;\n          q[0x19] = local_7c;\n          q[0x1a] = uVar12;\n          q[0x1e] = local_8c;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset];\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x20] = SUB81(dVar2,0);\n          q[0x24] = uVar10;\n          q[0x21] = local_8c;\n          q[0x22] = local_6c;\n          q[0x23] = local_74;\n          q[0x25] = uVar12;\n          q[0x26] = local_7c;\n          q[0x27] = local_84;\n        }\n        else {\n          q[0x23] = uVar10;\n          q[0x27] = SUB81(dVar2,0);\n          q[0x20] = local_84;\n          q[0x21] = local_7c;\n          q[0x22] = uVar12;\n          q[0x24] = local_74;\n          q[0x25] = local_6c;\n          q[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x28;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n  }" if (parenthesized_expression "(uVar17 < 0x11)" ( (binary_expression "uVar17 < 0x11" identifier < number_literal) )) (compound_statement "{\n    if (uVar17 == 8) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map->offset]) {\n          dVar2 = p[image->channel_map->offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *q = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[1].offset]) {\n          dVar2 = p[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[1] = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[2].offset]) {\n          dVar2 = p[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[2] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n           (0.0 < p[image->channel_map[3].offset])) {\n          dVar2 = p[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[3] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[4].traits == BlendPixelTrait) &&\n           (0.0 < DAT_0029f710 - (float)p[image->channel_map[4].offset])) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) / DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        q[4] = uVar10;\n        iVar13 = iVar13 + 1;\n        p = p + image->number_channels;\n        q = q + quantum_info->pad + 5;\n      } while (iVar13 != (int)number_pixels);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar17 == 0) goto LAB_0013be09;\n  }" { (if_statement "if (uVar17 == 8) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map->offset]) {\n          dVar2 = p[image->channel_map->offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *q = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[1].offset]) {\n          dVar2 = p[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[1] = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[2].offset]) {\n          dVar2 = p[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[2] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n           (0.0 < p[image->channel_map[3].offset])) {\n          dVar2 = p[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[3] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[4].traits == BlendPixelTrait) &&\n           (0.0 < DAT_0029f710 - (float)p[image->channel_map[4].offset])) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) / DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        q[4] = uVar10;\n        iVar13 = iVar13 + 1;\n        p = p + image->number_channels;\n        q = q + quantum_info->pad + 5;\n      } while (iVar13 != (int)number_pixels);\n      return;\n    }" if (parenthesized_expression "(uVar17 == 8)" ( (binary_expression "uVar17 == 8" identifier == number_literal) )) (compound_statement "{\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map->offset]) {\n          dVar2 = p[image->channel_map->offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *q = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[1].offset]) {\n          dVar2 = p[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[1] = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[2].offset]) {\n          dVar2 = p[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[2] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n           (0.0 < p[image->channel_map[3].offset])) {\n          dVar2 = p[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[3] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[4].traits == BlendPixelTrait) &&\n           (0.0 < DAT_0029f710 - (float)p[image->channel_map[4].offset])) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) / DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        q[4] = uVar10;\n        iVar13 = iVar13 + 1;\n        p = p + image->number_channels;\n        q = q + quantum_info->pad + 5;\n      } while (iVar13 != (int)number_pixels);\n      return;\n    }" { (if_statement "if ((int)number_pixels < 1) {\n        return;\n      }" if (parenthesized_expression "((int)number_pixels < 1)" ( (binary_expression "(int)number_pixels < 1" (cast_expression "(int)number_pixels" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map->offset]) {\n          dVar2 = p[image->channel_map->offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *q = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[1].offset]) {\n          dVar2 = p[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[1] = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[2].offset]) {\n          dVar2 = p[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[2] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n           (0.0 < p[image->channel_map[3].offset])) {\n          dVar2 = p[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[3] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[4].traits == BlendPixelTrait) &&\n           (0.0 < DAT_0029f710 - (float)p[image->channel_map[4].offset])) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) / DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        q[4] = uVar10;\n        iVar13 = iVar13 + 1;\n        p = p + image->number_channels;\n        q = q + quantum_info->pad + 5;\n      } while (iVar13 != (int)number_pixels);" do (compound_statement "{\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map->offset]) {\n          dVar2 = p[image->channel_map->offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *q = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[1].offset]) {\n          dVar2 = p[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[1] = uVar10;\n        uVar10 = '\0';\n        if (0.0 < p[image->channel_map[2].offset]) {\n          dVar2 = p[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[2] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n           (0.0 < p[image->channel_map[3].offset])) {\n          dVar2 = p[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        q[3] = uVar10;\n        uVar10 = '\0';\n        if ((image->channel_map[4].traits == BlendPixelTrait) &&\n           (0.0 < DAT_0029f710 - (float)p[image->channel_map[4].offset])) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) / DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        q[4] = uVar10;\n        iVar13 = iVar13 + 1;\n        p = p + image->number_channels;\n        q = q + quantum_info->pad + 5;\n      }" { (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < p[image->channel_map->offset]) {\n          dVar2 = p[image->channel_map->offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" if (parenthesized_expression "(0.0 < p[image->channel_map->offset])" ( (binary_expression "0.0 < p[image->channel_map->offset]" number_literal < (subscript_expression "p[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ])) )) (compound_statement "{\n          dVar2 = p[image->channel_map->offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" { (expression_statement "dVar2 = p[image->channel_map->offset] / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = p[image->channel_map->offset] / (double)DAT_002a7ff0" identifier = (binary_expression "p[image->channel_map->offset] / (double)DAT_002a7ff0" (subscript_expression "p[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 "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" ( (binary_expression "dVar2 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" { (expression_statement "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(uchar)(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "uchar" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "*q = uVar10;" (assignment_expression "*q = uVar10" (pointer_expression "*q" * identifier) = identifier) ;) (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < p[image->channel_map[1].offset]) {\n          dVar2 = p[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" if (parenthesized_expression "(0.0 < p[image->channel_map[1].offset])" ( (binary_expression "0.0 < p[image->channel_map[1].offset]" number_literal < (subscript_expression "p[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          dVar2 = p[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" { (expression_statement "dVar2 = p[image->channel_map[1].offset] / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = p[image->channel_map[1].offset] / (double)DAT_002a7ff0" identifier = (binary_expression "p[image->channel_map[1].offset] / (double)DAT_002a7ff0" (subscript_expression "p[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 "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" ( (binary_expression "dVar2 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" { (expression_statement "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(uchar)(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "uchar" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "q[1] = uVar10;" (assignment_expression "q[1] = uVar10" (subscript_expression "q[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (0.0 < p[image->channel_map[2].offset]) {\n          dVar2 = p[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" if (parenthesized_expression "(0.0 < p[image->channel_map[2].offset])" ( (binary_expression "0.0 < p[image->channel_map[2].offset]" number_literal < (subscript_expression "p[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          dVar2 = p[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" { (expression_statement "dVar2 = p[image->channel_map[2].offset] / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = p[image->channel_map[2].offset] / (double)DAT_002a7ff0" identifier = (binary_expression "p[image->channel_map[2].offset] / (double)DAT_002a7ff0" (subscript_expression "p[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 "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" ( (binary_expression "dVar2 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" { (expression_statement "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(uchar)(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "uchar" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "q[2] = uVar10;" (assignment_expression "q[2] = uVar10" (subscript_expression "q[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n           (0.0 < p[image->channel_map[3].offset])) {\n          dVar2 = p[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" if (parenthesized_expression "((image->channel_map[3].traits != UndefinedPixelTrait) &&\n           (0.0 < p[image->channel_map[3].offset]))" ( (binary_expression "(image->channel_map[3].traits != UndefinedPixelTrait) &&\n           (0.0 < p[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 < p[image->channel_map[3].offset])" ( (binary_expression "0.0 < p[image->channel_map[3].offset]" number_literal < (subscript_expression "p[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          dVar2 = p[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" { (expression_statement "dVar2 = p[image->channel_map[3].offset] / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = p[image->channel_map[3].offset] / (double)DAT_002a7ff0" identifier = (binary_expression "p[image->channel_map[3].offset] / (double)DAT_002a7ff0" (subscript_expression "p[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 "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" ( (binary_expression "dVar2 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" { (expression_statement "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "uVar10 = (uchar)(short)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(uchar)(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "uchar" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "q[3] = uVar10;" (assignment_expression "q[3] = uVar10" (subscript_expression "q[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((image->channel_map[4].traits == BlendPixelTrait) &&\n           (0.0 < DAT_0029f710 - (float)p[image->channel_map[4].offset])) {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) / DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }" if (parenthesized_expression "((image->channel_map[4].traits == BlendPixelTrait) &&\n           (0.0 < DAT_0029f710 - (float)p[image->channel_map[4].offset]))" ( (binary_expression "(image->channel_map[4].traits == BlendPixelTrait) &&\n           (0.0 < DAT_0029f710 - (float)p[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)p[image->channel_map[4].offset])" ( (binary_expression "0.0 < DAT_0029f710 - (float)p[image->channel_map[4].offset]" number_literal < (binary_expression "DAT_0029f710 - (float)p[image->channel_map[4].offset]" identifier - (cast_expression "(float)p[image->channel_map[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "p[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)p[image->channel_map[4].offset]) / DAT_002a7ff0;\n          uVar10 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }" { (expression_statement "fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) / DAT_002a7ff0;" (assignment_expression "fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) / DAT_002a7ff0" identifier = (binary_expression "(DAT_0029f710 - (float)p[image->channel_map[4].offset]) / DAT_002a7ff0" (parenthesized_expression "(DAT_0029f710 - (float)p[image->channel_map[4].offset])" ( (binary_expression "DAT_0029f710 - (float)p[image->channel_map[4].offset]" identifier - (cast_expression "(float)p[image->channel_map[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "p[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 "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (if_statement "if (fVar1 < DAT_002a7ff4) {\n            uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);\n          }" if (parenthesized_expression "(fVar1 < DAT_002a7ff4)" ( (binary_expression "fVar1 < DAT_002a7ff4" identifier < identifier) )) (compound_statement "{\n            uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);\n          }" { (expression_statement "uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "uVar10 = (uchar)(short)ROUND(fVar1 + DAT_0029f124)" identifier = (cast_expression "(uchar)(short)ROUND(fVar1 + DAT_0029f124)" ( (type_descriptor "uchar" 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 "q[4] = uVar10;" (assignment_expression "q[4] = uVar10" (subscript_expression "q[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "p = p + image->number_channels;" (assignment_expression "p = p + image->number_channels" identifier = (binary_expression "p + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "q = q + quantum_info->pad + 5;" (assignment_expression "q = q + quantum_info->pad + 5" identifier = (binary_expression "q + quantum_info->pad + 5" (binary_expression "q + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (int)number_pixels)" ( (binary_expression "iVar13 != (int)number_pixels" identifier != (cast_expression "(int)number_pixels" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0013d3f8:\n    local_4c = 0;" statement_identifier : (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;)) (expression_statement "iStack_48 = 0;" (assignment_expression "iStack_48 = 0" identifier = number_literal) ;) (if_statement "if (uVar17 == 0) goto LAB_0013be09;" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013be09;" goto statement_identifier ;)) }) (else_clause "else {\n    if (uVar17 == 0x20) {\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)number_pixels < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *q = SUB41(fVar1,0);\n            q[1] = uVar10;\n            q[2] = uVar11;\n            q[3] = uVar12;\n          }\n          else {\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[4] = SUB41(fVar1,0);\n            q[5] = uVar10;\n            q[6] = uVar11;\n            q[7] = uVar12;\n          }\n          else {\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[8] = SUB41(fVar1,0);\n            q[10] = uVar12;\n            q[9] = uVar10;\n            q[0xb] = uVar11;\n          }\n          else {\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[3].traits == UndefinedPixelTrait) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)p[image->channel_map[3].offset];\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0xc] = SUB41(fVar1,0);\n            q[0xe] = uVar11;\n            q[0xd] = uVar10;\n            q[0xf] = uVar12;\n          }\n          else {\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset];\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0x10] = SUB41(fVar1,0);\n            q[0x12] = uVar12;\n            q[0x11] = uVar10;\n            q[0x13] = uVar11;\n          }\n          else {\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          q = q + quantum_info->pad + 0x14;\n          p = p + image->number_channels;\n        } while (local_64 != (int)number_pixels);\n        return;\n      }\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        if (p[image->channel_map->offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;\n          if (dVar4 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[1] = uVar11;\n          *q = local_34;\n          q[2] = uVar10;\n          q[3] = uVar12;\n        }\n        else {\n          q[2] = uVar11;\n          *q = uVar12;\n          q[3] = local_34;\n          q[1] = uVar10;\n        }\n        if (p[image->channel_map[1].offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = local_34;\n          q[6] = uVar10;\n          q[5] = uVar11;\n          q[7] = uVar12;\n        }\n        else {\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[6] = uVar11;\n          q[7] = local_34;\n        }\n        if (p[image->channel_map[2].offset] <= 0.0) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar11 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[10] = uVar11;\n          q[0xb] = uVar12;\n          q[8] = uVar10;\n          q[9] = uVar15;\n        }\n        else {\n          q[9] = uVar11;\n          q[10] = uVar15;\n          q[8] = uVar12;\n          q[0xb] = uVar10;\n        }\n        if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n           (p[image->channel_map[3].offset] <= 0.0)) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0xc] = local_34;\n          q[0xe] = uVar10;\n          q[0xd] = uVar11;\n          q[0xf] = uVar12;\n        }\n        else {\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[0xe] = uVar11;\n          q[0xf] = local_34;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0)) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar12 = '\0';\n          uVar11 = '\0';\n        }\n        else {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0x12] = uVar12;\n          q[0x13] = uVar11;\n          q[0x10] = uVar10;\n          q[0x11] = uVar15;\n        }\n        else {\n          q[0x11] = uVar12;\n          q[0x12] = uVar15;\n          q[0x10] = uVar11;\n          q[0x13] = uVar10;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x14;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n    if (uVar17 != 0x40) goto LAB_0013d3f8;\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = p[image->channel_map->offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = SUB81(dVar2,0);\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[1] = local_8c;\n          q[2] = local_6c;\n          q[3] = local_74;\n          q[6] = local_7c;\n          q[7] = local_84;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = uVar12;\n          q[7] = SUB81(dVar2,0);\n          q[4] = local_74;\n          *q = local_84;\n          q[5] = local_6c;\n          q[1] = local_7c;\n          q[6] = local_8c;\n        }\n        dVar2 = p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = SUB81(dVar2,0);\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[9] = local_8c;\n          q[0xe] = local_7c;\n          q[0xf] = local_84;\n          q[10] = local_6c;\n          q[0xb] = local_74;\n        }\n        else {\n          q[0xb] = uVar12;\n          q[10] = uVar10;\n          q[0xf] = SUB81(dVar2,0);\n          q[0xc] = local_74;\n          q[8] = local_84;\n          q[0xd] = local_6c;\n          q[9] = local_7c;\n          q[0xe] = local_8c;\n        }\n        dVar2 = p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x14] = uVar10;\n          q[0x10] = SUB81(dVar2,0);\n          q[0x11] = local_8c;\n          q[0x12] = local_6c;\n          q[0x13] = local_74;\n          q[0x15] = uVar12;\n          q[0x16] = local_7c;\n          q[0x17] = local_84;\n        }\n        else {\n          q[0x13] = uVar10;\n          q[0x17] = SUB81(dVar2,0);\n          q[0x10] = local_84;\n          q[0x11] = local_7c;\n          q[0x12] = uVar12;\n          q[0x14] = local_74;\n          q[0x15] = local_6c;\n          q[0x16] = local_8c;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset];\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x1c] = uVar10;\n          q[0x1d] = uVar12;\n          q[0x18] = SUB81(dVar2,0);\n          q[0x19] = local_8c;\n          q[0x1e] = local_7c;\n          q[0x1a] = local_6c;\n          q[0x1b] = local_74;\n          q[0x1f] = local_84;\n        }\n        else {\n          q[0x1b] = uVar10;\n          q[0x1f] = SUB81(dVar2,0);\n          q[0x1c] = local_74;\n          q[0x18] = local_84;\n          q[0x1d] = local_6c;\n          q[0x19] = local_7c;\n          q[0x1a] = uVar12;\n          q[0x1e] = local_8c;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset];\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x20] = SUB81(dVar2,0);\n          q[0x24] = uVar10;\n          q[0x21] = local_8c;\n          q[0x22] = local_6c;\n          q[0x23] = local_74;\n          q[0x25] = uVar12;\n          q[0x26] = local_7c;\n          q[0x27] = local_84;\n        }\n        else {\n          q[0x23] = uVar10;\n          q[0x27] = SUB81(dVar2,0);\n          q[0x20] = local_84;\n          q[0x21] = local_7c;\n          q[0x22] = uVar12;\n          q[0x24] = local_74;\n          q[0x25] = local_6c;\n          q[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x28;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n  }" else (compound_statement "{\n    if (uVar17 == 0x20) {\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)number_pixels < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *q = SUB41(fVar1,0);\n            q[1] = uVar10;\n            q[2] = uVar11;\n            q[3] = uVar12;\n          }\n          else {\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[4] = SUB41(fVar1,0);\n            q[5] = uVar10;\n            q[6] = uVar11;\n            q[7] = uVar12;\n          }\n          else {\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[8] = SUB41(fVar1,0);\n            q[10] = uVar12;\n            q[9] = uVar10;\n            q[0xb] = uVar11;\n          }\n          else {\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[3].traits == UndefinedPixelTrait) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)p[image->channel_map[3].offset];\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0xc] = SUB41(fVar1,0);\n            q[0xe] = uVar11;\n            q[0xd] = uVar10;\n            q[0xf] = uVar12;\n          }\n          else {\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset];\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0x10] = SUB41(fVar1,0);\n            q[0x12] = uVar12;\n            q[0x11] = uVar10;\n            q[0x13] = uVar11;\n          }\n          else {\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          q = q + quantum_info->pad + 0x14;\n          p = p + image->number_channels;\n        } while (local_64 != (int)number_pixels);\n        return;\n      }\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        if (p[image->channel_map->offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;\n          if (dVar4 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[1] = uVar11;\n          *q = local_34;\n          q[2] = uVar10;\n          q[3] = uVar12;\n        }\n        else {\n          q[2] = uVar11;\n          *q = uVar12;\n          q[3] = local_34;\n          q[1] = uVar10;\n        }\n        if (p[image->channel_map[1].offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = local_34;\n          q[6] = uVar10;\n          q[5] = uVar11;\n          q[7] = uVar12;\n        }\n        else {\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[6] = uVar11;\n          q[7] = local_34;\n        }\n        if (p[image->channel_map[2].offset] <= 0.0) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar11 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[10] = uVar11;\n          q[0xb] = uVar12;\n          q[8] = uVar10;\n          q[9] = uVar15;\n        }\n        else {\n          q[9] = uVar11;\n          q[10] = uVar15;\n          q[8] = uVar12;\n          q[0xb] = uVar10;\n        }\n        if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n           (p[image->channel_map[3].offset] <= 0.0)) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0xc] = local_34;\n          q[0xe] = uVar10;\n          q[0xd] = uVar11;\n          q[0xf] = uVar12;\n        }\n        else {\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[0xe] = uVar11;\n          q[0xf] = local_34;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0)) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar12 = '\0';\n          uVar11 = '\0';\n        }\n        else {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0x12] = uVar12;\n          q[0x13] = uVar11;\n          q[0x10] = uVar10;\n          q[0x11] = uVar15;\n        }\n        else {\n          q[0x11] = uVar12;\n          q[0x12] = uVar15;\n          q[0x10] = uVar11;\n          q[0x13] = uVar10;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x14;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n    if (uVar17 != 0x40) goto LAB_0013d3f8;\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = p[image->channel_map->offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = SUB81(dVar2,0);\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[1] = local_8c;\n          q[2] = local_6c;\n          q[3] = local_74;\n          q[6] = local_7c;\n          q[7] = local_84;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = uVar12;\n          q[7] = SUB81(dVar2,0);\n          q[4] = local_74;\n          *q = local_84;\n          q[5] = local_6c;\n          q[1] = local_7c;\n          q[6] = local_8c;\n        }\n        dVar2 = p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = SUB81(dVar2,0);\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[9] = local_8c;\n          q[0xe] = local_7c;\n          q[0xf] = local_84;\n          q[10] = local_6c;\n          q[0xb] = local_74;\n        }\n        else {\n          q[0xb] = uVar12;\n          q[10] = uVar10;\n          q[0xf] = SUB81(dVar2,0);\n          q[0xc] = local_74;\n          q[8] = local_84;\n          q[0xd] = local_6c;\n          q[9] = local_7c;\n          q[0xe] = local_8c;\n        }\n        dVar2 = p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x14] = uVar10;\n          q[0x10] = SUB81(dVar2,0);\n          q[0x11] = local_8c;\n          q[0x12] = local_6c;\n          q[0x13] = local_74;\n          q[0x15] = uVar12;\n          q[0x16] = local_7c;\n          q[0x17] = local_84;\n        }\n        else {\n          q[0x13] = uVar10;\n          q[0x17] = SUB81(dVar2,0);\n          q[0x10] = local_84;\n          q[0x11] = local_7c;\n          q[0x12] = uVar12;\n          q[0x14] = local_74;\n          q[0x15] = local_6c;\n          q[0x16] = local_8c;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset];\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x1c] = uVar10;\n          q[0x1d] = uVar12;\n          q[0x18] = SUB81(dVar2,0);\n          q[0x19] = local_8c;\n          q[0x1e] = local_7c;\n          q[0x1a] = local_6c;\n          q[0x1b] = local_74;\n          q[0x1f] = local_84;\n        }\n        else {\n          q[0x1b] = uVar10;\n          q[0x1f] = SUB81(dVar2,0);\n          q[0x1c] = local_74;\n          q[0x18] = local_84;\n          q[0x1d] = local_6c;\n          q[0x19] = local_7c;\n          q[0x1a] = uVar12;\n          q[0x1e] = local_8c;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset];\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x20] = SUB81(dVar2,0);\n          q[0x24] = uVar10;\n          q[0x21] = local_8c;\n          q[0x22] = local_6c;\n          q[0x23] = local_74;\n          q[0x25] = uVar12;\n          q[0x26] = local_7c;\n          q[0x27] = local_84;\n        }\n        else {\n          q[0x23] = uVar10;\n          q[0x27] = SUB81(dVar2,0);\n          q[0x20] = local_84;\n          q[0x21] = local_7c;\n          q[0x22] = uVar12;\n          q[0x24] = local_74;\n          q[0x25] = local_6c;\n          q[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x28;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }\n  }" { (if_statement "if (uVar17 == 0x20) {\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)number_pixels < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *q = SUB41(fVar1,0);\n            q[1] = uVar10;\n            q[2] = uVar11;\n            q[3] = uVar12;\n          }\n          else {\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[4] = SUB41(fVar1,0);\n            q[5] = uVar10;\n            q[6] = uVar11;\n            q[7] = uVar12;\n          }\n          else {\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[8] = SUB41(fVar1,0);\n            q[10] = uVar12;\n            q[9] = uVar10;\n            q[0xb] = uVar11;\n          }\n          else {\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[3].traits == UndefinedPixelTrait) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)p[image->channel_map[3].offset];\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0xc] = SUB41(fVar1,0);\n            q[0xe] = uVar11;\n            q[0xd] = uVar10;\n            q[0xf] = uVar12;\n          }\n          else {\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset];\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0x10] = SUB41(fVar1,0);\n            q[0x12] = uVar12;\n            q[0x11] = uVar10;\n            q[0x13] = uVar11;\n          }\n          else {\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          q = q + quantum_info->pad + 0x14;\n          p = p + image->number_channels;\n        } while (local_64 != (int)number_pixels);\n        return;\n      }\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        if (p[image->channel_map->offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;\n          if (dVar4 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[1] = uVar11;\n          *q = local_34;\n          q[2] = uVar10;\n          q[3] = uVar12;\n        }\n        else {\n          q[2] = uVar11;\n          *q = uVar12;\n          q[3] = local_34;\n          q[1] = uVar10;\n        }\n        if (p[image->channel_map[1].offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = local_34;\n          q[6] = uVar10;\n          q[5] = uVar11;\n          q[7] = uVar12;\n        }\n        else {\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[6] = uVar11;\n          q[7] = local_34;\n        }\n        if (p[image->channel_map[2].offset] <= 0.0) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar11 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[10] = uVar11;\n          q[0xb] = uVar12;\n          q[8] = uVar10;\n          q[9] = uVar15;\n        }\n        else {\n          q[9] = uVar11;\n          q[10] = uVar15;\n          q[8] = uVar12;\n          q[0xb] = uVar10;\n        }\n        if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n           (p[image->channel_map[3].offset] <= 0.0)) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0xc] = local_34;\n          q[0xe] = uVar10;\n          q[0xd] = uVar11;\n          q[0xf] = uVar12;\n        }\n        else {\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[0xe] = uVar11;\n          q[0xf] = local_34;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0)) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar12 = '\0';\n          uVar11 = '\0';\n        }\n        else {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0x12] = uVar12;\n          q[0x13] = uVar11;\n          q[0x10] = uVar10;\n          q[0x11] = uVar15;\n        }\n        else {\n          q[0x11] = uVar12;\n          q[0x12] = uVar15;\n          q[0x10] = uVar11;\n          q[0x13] = uVar10;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x14;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }" if (parenthesized_expression "(uVar17 == 0x20)" ( (binary_expression "uVar17 == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)number_pixels < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *q = SUB41(fVar1,0);\n            q[1] = uVar10;\n            q[2] = uVar11;\n            q[3] = uVar12;\n          }\n          else {\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[4] = SUB41(fVar1,0);\n            q[5] = uVar10;\n            q[6] = uVar11;\n            q[7] = uVar12;\n          }\n          else {\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[8] = SUB41(fVar1,0);\n            q[10] = uVar12;\n            q[9] = uVar10;\n            q[0xb] = uVar11;\n          }\n          else {\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[3].traits == UndefinedPixelTrait) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)p[image->channel_map[3].offset];\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0xc] = SUB41(fVar1,0);\n            q[0xe] = uVar11;\n            q[0xd] = uVar10;\n            q[0xf] = uVar12;\n          }\n          else {\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset];\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0x10] = SUB41(fVar1,0);\n            q[0x12] = uVar12;\n            q[0x11] = uVar10;\n            q[0x13] = uVar11;\n          }\n          else {\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          q = q + quantum_info->pad + 0x14;\n          p = p + image->number_channels;\n        } while (local_64 != (int)number_pixels);\n        return;\n      }\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        if (p[image->channel_map->offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;\n          if (dVar4 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[1] = uVar11;\n          *q = local_34;\n          q[2] = uVar10;\n          q[3] = uVar12;\n        }\n        else {\n          q[2] = uVar11;\n          *q = uVar12;\n          q[3] = local_34;\n          q[1] = uVar10;\n        }\n        if (p[image->channel_map[1].offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = local_34;\n          q[6] = uVar10;\n          q[5] = uVar11;\n          q[7] = uVar12;\n        }\n        else {\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[6] = uVar11;\n          q[7] = local_34;\n        }\n        if (p[image->channel_map[2].offset] <= 0.0) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar11 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[10] = uVar11;\n          q[0xb] = uVar12;\n          q[8] = uVar10;\n          q[9] = uVar15;\n        }\n        else {\n          q[9] = uVar11;\n          q[10] = uVar15;\n          q[8] = uVar12;\n          q[0xb] = uVar10;\n        }\n        if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n           (p[image->channel_map[3].offset] <= 0.0)) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0xc] = local_34;\n          q[0xe] = uVar10;\n          q[0xd] = uVar11;\n          q[0xf] = uVar12;\n        }\n        else {\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[0xe] = uVar11;\n          q[0xf] = local_34;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0)) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar12 = '\0';\n          uVar11 = '\0';\n        }\n        else {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0x12] = uVar12;\n          q[0x13] = uVar11;\n          q[0x10] = uVar10;\n          q[0x11] = uVar15;\n        }\n        else {\n          q[0x11] = uVar12;\n          q[0x12] = uVar15;\n          q[0x10] = uVar11;\n          q[0x13] = uVar10;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x14;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)number_pixels < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *q = SUB41(fVar1,0);\n            q[1] = uVar10;\n            q[2] = uVar11;\n            q[3] = uVar12;\n          }\n          else {\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[4] = SUB41(fVar1,0);\n            q[5] = uVar10;\n            q[6] = uVar11;\n            q[7] = uVar12;\n          }\n          else {\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[8] = SUB41(fVar1,0);\n            q[10] = uVar12;\n            q[9] = uVar10;\n            q[0xb] = uVar11;\n          }\n          else {\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[3].traits == UndefinedPixelTrait) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)p[image->channel_map[3].offset];\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0xc] = SUB41(fVar1,0);\n            q[0xe] = uVar11;\n            q[0xd] = uVar10;\n            q[0xf] = uVar12;\n          }\n          else {\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset];\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0x10] = SUB41(fVar1,0);\n            q[0x12] = uVar12;\n            q[0x11] = uVar10;\n            q[0x13] = uVar11;\n          }\n          else {\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          q = q + quantum_info->pad + 0x14;\n          p = p + image->number_channels;\n        } while (local_64 != (int)number_pixels);\n        return;\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 ((int)number_pixels < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *q = SUB41(fVar1,0);\n            q[1] = uVar10;\n            q[2] = uVar11;\n            q[3] = uVar12;\n          }\n          else {\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[4] = SUB41(fVar1,0);\n            q[5] = uVar10;\n            q[6] = uVar11;\n            q[7] = uVar12;\n          }\n          else {\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[8] = SUB41(fVar1,0);\n            q[10] = uVar12;\n            q[9] = uVar10;\n            q[0xb] = uVar11;\n          }\n          else {\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[3].traits == UndefinedPixelTrait) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)p[image->channel_map[3].offset];\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0xc] = SUB41(fVar1,0);\n            q[0xe] = uVar11;\n            q[0xd] = uVar10;\n            q[0xf] = uVar12;\n          }\n          else {\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset];\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0x10] = SUB41(fVar1,0);\n            q[0x12] = uVar12;\n            q[0x11] = uVar10;\n            q[0x13] = uVar11;\n          }\n          else {\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          q = q + quantum_info->pad + 0x14;\n          p = p + image->number_channels;\n        } while (local_64 != (int)number_pixels);\n        return;\n      }" { (if_statement "if ((int)number_pixels < 1) {\n          return;\n        }" if (parenthesized_expression "((int)number_pixels < 1)" ( (binary_expression "(int)number_pixels < 1" (cast_expression "(int)number_pixels" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n          fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *q = SUB41(fVar1,0);\n            q[1] = uVar10;\n            q[2] = uVar11;\n            q[3] = uVar12;\n          }\n          else {\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[4] = SUB41(fVar1,0);\n            q[5] = uVar10;\n            q[6] = uVar11;\n            q[7] = uVar12;\n          }\n          else {\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[8] = SUB41(fVar1,0);\n            q[10] = uVar12;\n            q[9] = uVar10;\n            q[0xb] = uVar11;\n          }\n          else {\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[3].traits == UndefinedPixelTrait) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)p[image->channel_map[3].offset];\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0xc] = SUB41(fVar1,0);\n            q[0xe] = uVar11;\n            q[0xd] = uVar10;\n            q[0xf] = uVar12;\n          }\n          else {\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset];\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0x10] = SUB41(fVar1,0);\n            q[0x12] = uVar12;\n            q[0x11] = uVar10;\n            q[0x13] = uVar11;\n          }\n          else {\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          q = q + quantum_info->pad + 0x14;\n          p = p + image->number_channels;\n        } while (local_64 != (int)number_pixels);" do (compound_statement "{\n          fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *q = SUB41(fVar1,0);\n            q[1] = uVar10;\n            q[2] = uVar11;\n            q[3] = uVar12;\n          }\n          else {\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[4] = SUB41(fVar1,0);\n            q[5] = uVar10;\n            q[6] = uVar11;\n            q[7] = uVar12;\n          }\n          else {\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[8] = SUB41(fVar1,0);\n            q[10] = uVar12;\n            q[9] = uVar10;\n            q[0xb] = uVar11;\n          }\n          else {\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[3].traits == UndefinedPixelTrait) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)p[image->channel_map[3].offset];\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar12 = (uchar)((uint)fVar1 >> 0x18);\n          uVar11 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0xc] = SUB41(fVar1,0);\n            q[0xe] = uVar11;\n            q[0xd] = uVar10;\n            q[0xf] = uVar12;\n          }\n          else {\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset];\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;\n          uVar10 = (uchar)((uint)fVar1 >> 8);\n          uVar11 = (uchar)((uint)fVar1 >> 0x18);\n          uVar12 = (uchar)((uint)fVar1 >> 0x10);\n          if (quantum_info->endian == LSBEndian) {\n            q[0x10] = SUB41(fVar1,0);\n            q[0x12] = uVar12;\n            q[0x11] = uVar10;\n            q[0x13] = uVar11;\n          }\n          else {\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          q = q + quantum_info->pad + 0x14;\n          p = p + image->number_channels;\n        }" { (expression_statement "fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum;" (assignment_expression "fVar1 = (float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum" identifier = (binary_expression "(float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale\n                  + (float)quantum_info->minimum" (binary_expression "(float)p[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale" (cast_expression "(float)p[image->channel_map->offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "p[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ])) * (cast_expression "(float)(quantum_info->state).inverse_scale" ( (type_descriptor "float" primitive_type) ) (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(float)quantum_info->minimum" ( (type_descriptor "float" primitive_type) ) (field_expression "quantum_info->minimum" identifier -> field_identifier)))) ;) (expression_statement "uVar10 = (uchar)((uint)fVar1 >> 8);" (assignment_expression "uVar10 = (uchar)((uint)fVar1 >> 8)" identifier = (call_expression "(uchar)((uint)fVar1 >> 8)" (parenthesized_expression "(uchar)" ( 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 "uVar11 = (uchar)((uint)fVar1 >> 0x10);" (assignment_expression "uVar11 = (uchar)((uint)fVar1 >> 0x10)" identifier = (call_expression "(uchar)((uint)fVar1 >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar12 = (uchar)((uint)fVar1 >> 0x18);" (assignment_expression "uVar12 = (uchar)((uint)fVar1 >> 0x18)" identifier = (call_expression "(uchar)((uint)fVar1 >> 0x18)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n            *q = SUB41(fVar1,0);\n            q[1] = uVar10;\n            q[2] = uVar11;\n            q[3] = uVar12;\n          }\n          else {\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\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            *q = SUB41(fVar1,0);\n            q[1] = uVar10;\n            q[2] = uVar11;\n            q[3] = uVar12;\n          }" { (expression_statement "*q = SUB41(fVar1,0);" (assignment_expression "*q = SUB41(fVar1,0)" (pointer_expression "*q" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "q[1] = uVar10;" (assignment_expression "q[1] = uVar10" (subscript_expression "q[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[2] = uVar11;" (assignment_expression "q[2] = uVar11" (subscript_expression "q[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[3] = uVar12;" (assignment_expression "q[3] = uVar12" (subscript_expression "q[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            q[1] = uVar11;\n            *q = uVar12;\n            q[2] = uVar10;\n            q[3] = SUB41(fVar1,0);\n          }" { (expression_statement "q[1] = uVar11;" (assignment_expression "q[1] = uVar11" (subscript_expression "q[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*q = uVar12;" (assignment_expression "*q = uVar12" (pointer_expression "*q" * identifier) = identifier) ;) (expression_statement "q[2] = uVar10;" (assignment_expression "q[2] = uVar10" (subscript_expression "q[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[3] = SUB41(fVar1,0);" (assignment_expression "q[3] = SUB41(fVar1,0)" (subscript_expression "q[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "fVar1 = (float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;" (assignment_expression "fVar1 = (float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum" identifier = (binary_expression "(float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum" (binary_expression "(float)p[image->channel_map[1].offset] *\n                  (float)(quantum_info->state).inverse_scale" (cast_expression "(float)p[image->channel_map[1].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "p[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)(quantum_info->state).inverse_scale" ( (type_descriptor "float" primitive_type) ) (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(float)quantum_info->minimum" ( (type_descriptor "float" primitive_type) ) (field_expression "quantum_info->minimum" identifier -> field_identifier)))) ;) (expression_statement "uVar10 = (uchar)((uint)fVar1 >> 8);" (assignment_expression "uVar10 = (uchar)((uint)fVar1 >> 8)" identifier = (call_expression "(uchar)((uint)fVar1 >> 8)" (parenthesized_expression "(uchar)" ( 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 "uVar12 = (uchar)((uint)fVar1 >> 0x18);" (assignment_expression "uVar12 = (uchar)((uint)fVar1 >> 0x18)" identifier = (call_expression "(uchar)((uint)fVar1 >> 0x18)" (parenthesized_expression "(uchar)" ( 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 "uVar11 = (uchar)((uint)fVar1 >> 0x10);" (assignment_expression "uVar11 = (uchar)((uint)fVar1 >> 0x10)" identifier = (call_expression "(uchar)((uint)fVar1 >> 0x10)" (parenthesized_expression "(uchar)" ( 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 (quantum_info->endian == LSBEndian) {\n            q[4] = SUB41(fVar1,0);\n            q[5] = uVar10;\n            q[6] = uVar11;\n            q[7] = uVar12;\n          }\n          else {\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\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            q[4] = SUB41(fVar1,0);\n            q[5] = uVar10;\n            q[6] = uVar11;\n            q[7] = uVar12;\n          }" { (expression_statement "q[4] = SUB41(fVar1,0);" (assignment_expression "q[4] = SUB41(fVar1,0)" (subscript_expression "q[4]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "q[5] = uVar10;" (assignment_expression "q[5] = uVar10" (subscript_expression "q[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[6] = uVar11;" (assignment_expression "q[6] = uVar11" (subscript_expression "q[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[7] = uVar12;" (assignment_expression "q[7] = uVar12" (subscript_expression "q[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            q[4] = uVar12;\n            q[6] = uVar10;\n            q[5] = uVar11;\n            q[7] = SUB41(fVar1,0);\n          }" { (expression_statement "q[4] = uVar12;" (assignment_expression "q[4] = uVar12" (subscript_expression "q[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[6] = uVar10;" (assignment_expression "q[6] = uVar10" (subscript_expression "q[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[5] = uVar11;" (assignment_expression "q[5] = uVar11" (subscript_expression "q[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[7] = SUB41(fVar1,0);" (assignment_expression "q[7] = SUB41(fVar1,0)" (subscript_expression "q[7]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "fVar1 = (float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;" (assignment_expression "fVar1 = (float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum" identifier = (binary_expression "(float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum" (binary_expression "(float)p[image->channel_map[2].offset] *\n                  (float)(quantum_info->state).inverse_scale" (cast_expression "(float)p[image->channel_map[2].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "p[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)(quantum_info->state).inverse_scale" ( (type_descriptor "float" primitive_type) ) (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(float)quantum_info->minimum" ( (type_descriptor "float" primitive_type) ) (field_expression "quantum_info->minimum" identifier -> field_identifier)))) ;) (expression_statement "uVar10 = (uchar)((uint)fVar1 >> 8);" (assignment_expression "uVar10 = (uchar)((uint)fVar1 >> 8)" identifier = (call_expression "(uchar)((uint)fVar1 >> 8)" (parenthesized_expression "(uchar)" ( 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 "uVar11 = (uchar)((uint)fVar1 >> 0x18);" (assignment_expression "uVar11 = (uchar)((uint)fVar1 >> 0x18)" identifier = (call_expression "(uchar)((uint)fVar1 >> 0x18)" (parenthesized_expression "(uchar)" ( 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 "uVar12 = (uchar)((uint)fVar1 >> 0x10);" (assignment_expression "uVar12 = (uchar)((uint)fVar1 >> 0x10)" identifier = (call_expression "(uchar)((uint)fVar1 >> 0x10)" (parenthesized_expression "(uchar)" ( 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 (quantum_info->endian == LSBEndian) {\n            q[8] = SUB41(fVar1,0);\n            q[10] = uVar12;\n            q[9] = uVar10;\n            q[0xb] = uVar11;\n          }\n          else {\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\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            q[8] = SUB41(fVar1,0);\n            q[10] = uVar12;\n            q[9] = uVar10;\n            q[0xb] = uVar11;\n          }" { (expression_statement "q[8] = SUB41(fVar1,0);" (assignment_expression "q[8] = SUB41(fVar1,0)" (subscript_expression "q[8]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "q[10] = uVar12;" (assignment_expression "q[10] = uVar12" (subscript_expression "q[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[9] = uVar10;" (assignment_expression "q[9] = uVar10" (subscript_expression "q[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xb] = uVar11;" (assignment_expression "q[0xb] = uVar11" (subscript_expression "q[0xb]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            q[10] = uVar10;\n            q[8] = uVar11;\n            q[9] = uVar12;\n            q[0xb] = SUB41(fVar1,0);\n          }" { (expression_statement "q[10] = uVar10;" (assignment_expression "q[10] = uVar10" (subscript_expression "q[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[8] = uVar11;" (assignment_expression "q[8] = uVar11" (subscript_expression "q[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[9] = uVar12;" (assignment_expression "q[9] = uVar12" (subscript_expression "q[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xb] = SUB41(fVar1,0);" (assignment_expression "q[0xb] = SUB41(fVar1,0)" (subscript_expression "q[0xb]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (if_statement "if (image->channel_map[3].traits == UndefinedPixelTrait) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)p[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)p[image->channel_map[3].offset];\n          }" else (compound_statement "{\n            fVar1 = (float)p[image->channel_map[3].offset];\n          }" { (expression_statement "fVar1 = (float)p[image->channel_map[3].offset];" (assignment_expression "fVar1 = (float)p[image->channel_map[3].offset]" identifier = (cast_expression "(float)p[image->channel_map[3].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "p[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)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;" (assignment_expression "fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum" identifier = (binary_expression "fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum" (binary_expression "fVar1 * (float)(quantum_info->state).inverse_scale" identifier * (cast_expression "(float)(quantum_info->state).inverse_scale" ( (type_descriptor "float" primitive_type) ) (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(float)quantum_info->minimum" ( (type_descriptor "float" primitive_type) ) (field_expression "quantum_info->minimum" identifier -> field_identifier)))) ;) (expression_statement "uVar10 = (uchar)((uint)fVar1 >> 8);" (assignment_expression "uVar10 = (uchar)((uint)fVar1 >> 8)" identifier = (call_expression "(uchar)((uint)fVar1 >> 8)" (parenthesized_expression "(uchar)" ( 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 "uVar12 = (uchar)((uint)fVar1 >> 0x18);" (assignment_expression "uVar12 = (uchar)((uint)fVar1 >> 0x18)" identifier = (call_expression "(uchar)((uint)fVar1 >> 0x18)" (parenthesized_expression "(uchar)" ( 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 "uVar11 = (uchar)((uint)fVar1 >> 0x10);" (assignment_expression "uVar11 = (uchar)((uint)fVar1 >> 0x10)" identifier = (call_expression "(uchar)((uint)fVar1 >> 0x10)" (parenthesized_expression "(uchar)" ( 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 (quantum_info->endian == LSBEndian) {\n            q[0xc] = SUB41(fVar1,0);\n            q[0xe] = uVar11;\n            q[0xd] = uVar10;\n            q[0xf] = uVar12;\n          }\n          else {\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\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            q[0xc] = SUB41(fVar1,0);\n            q[0xe] = uVar11;\n            q[0xd] = uVar10;\n            q[0xf] = uVar12;\n          }" { (expression_statement "q[0xc] = SUB41(fVar1,0);" (assignment_expression "q[0xc] = SUB41(fVar1,0)" (subscript_expression "q[0xc]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "q[0xe] = uVar11;" (assignment_expression "q[0xe] = uVar11" (subscript_expression "q[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xd] = uVar10;" (assignment_expression "q[0xd] = uVar10" (subscript_expression "q[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xf] = uVar12;" (assignment_expression "q[0xf] = uVar12" (subscript_expression "q[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            q[0xe] = uVar10;\n            q[0xc] = uVar12;\n            q[0xd] = uVar11;\n            q[0xf] = SUB41(fVar1,0);\n          }" { (expression_statement "q[0xe] = uVar10;" (assignment_expression "q[0xe] = uVar10" (subscript_expression "q[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xc] = uVar12;" (assignment_expression "q[0xc] = uVar12" (subscript_expression "q[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xd] = uVar11;" (assignment_expression "q[0xd] = uVar11" (subscript_expression "q[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xf] = SUB41(fVar1,0);" (assignment_expression "q[0xf] = SUB41(fVar1,0)" (subscript_expression "q[0xf]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (if_statement "if (image->channel_map[4].traits == BlendPixelTrait) {\n            fVar1 = DAT_0029f710 - (float)p[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)p[image->channel_map[4].offset];\n          }" { (expression_statement "fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset];" (assignment_expression "fVar1 = DAT_0029f710 - (float)p[image->channel_map[4].offset]" identifier = (binary_expression "DAT_0029f710 - (float)p[image->channel_map[4].offset]" identifier - (cast_expression "(float)p[image->channel_map[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "p[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)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;" (assignment_expression "fVar1 = fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum" identifier = (binary_expression "fVar1 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum" (binary_expression "fVar1 * (float)(quantum_info->state).inverse_scale" identifier * (cast_expression "(float)(quantum_info->state).inverse_scale" ( (type_descriptor "float" primitive_type) ) (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier))) + (cast_expression "(float)quantum_info->minimum" ( (type_descriptor "float" primitive_type) ) (field_expression "quantum_info->minimum" identifier -> field_identifier)))) ;) (expression_statement "uVar10 = (uchar)((uint)fVar1 >> 8);" (assignment_expression "uVar10 = (uchar)((uint)fVar1 >> 8)" identifier = (call_expression "(uchar)((uint)fVar1 >> 8)" (parenthesized_expression "(uchar)" ( 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 "uVar11 = (uchar)((uint)fVar1 >> 0x18);" (assignment_expression "uVar11 = (uchar)((uint)fVar1 >> 0x18)" identifier = (call_expression "(uchar)((uint)fVar1 >> 0x18)" (parenthesized_expression "(uchar)" ( 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 "uVar12 = (uchar)((uint)fVar1 >> 0x10);" (assignment_expression "uVar12 = (uchar)((uint)fVar1 >> 0x10)" identifier = (call_expression "(uchar)((uint)fVar1 >> 0x10)" (parenthesized_expression "(uchar)" ( 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 (quantum_info->endian == LSBEndian) {\n            q[0x10] = SUB41(fVar1,0);\n            q[0x12] = uVar12;\n            q[0x11] = uVar10;\n            q[0x13] = uVar11;\n          }\n          else {\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\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            q[0x10] = SUB41(fVar1,0);\n            q[0x12] = uVar12;\n            q[0x11] = uVar10;\n            q[0x13] = uVar11;\n          }" { (expression_statement "q[0x10] = SUB41(fVar1,0);" (assignment_expression "q[0x10] = SUB41(fVar1,0)" (subscript_expression "q[0x10]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "q[0x12] = uVar12;" (assignment_expression "q[0x12] = uVar12" (subscript_expression "q[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x11] = uVar10;" (assignment_expression "q[0x11] = uVar10" (subscript_expression "q[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x13] = uVar11;" (assignment_expression "q[0x13] = uVar11" (subscript_expression "q[0x13]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            q[0x12] = uVar10;\n            q[0x10] = uVar11;\n            q[0x11] = uVar12;\n            q[0x13] = SUB41(fVar1,0);\n          }" { (expression_statement "q[0x12] = uVar10;" (assignment_expression "q[0x12] = uVar10" (subscript_expression "q[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x10] = uVar11;" (assignment_expression "q[0x10] = uVar11" (subscript_expression "q[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x11] = uVar12;" (assignment_expression "q[0x11] = uVar12" (subscript_expression "q[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x13] = SUB41(fVar1,0);" (assignment_expression "q[0x13] = SUB41(fVar1,0)" (subscript_expression "q[0x13]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "q = q + quantum_info->pad + 0x14;" (assignment_expression "q = q + quantum_info->pad + 0x14" identifier = (binary_expression "q + quantum_info->pad + 0x14" (binary_expression "q + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) (expression_statement "p = p + image->number_channels;" (assignment_expression "p = p + image->number_channels" identifier = (binary_expression "p + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(local_64 != (int)number_pixels)" ( (binary_expression "local_64 != (int)number_pixels" identifier != (cast_expression "(int)number_pixels" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (return_statement "return;" return ;) })) (if_statement "if ((int)number_pixels < 1) {\n        return;\n      }" if (parenthesized_expression "((int)number_pixels < 1)" ( (binary_expression "(int)number_pixels < 1" (cast_expression "(int)number_pixels" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (p[image->channel_map->offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;\n          if (dVar4 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[1] = uVar11;\n          *q = local_34;\n          q[2] = uVar10;\n          q[3] = uVar12;\n        }\n        else {\n          q[2] = uVar11;\n          *q = uVar12;\n          q[3] = local_34;\n          q[1] = uVar10;\n        }\n        if (p[image->channel_map[1].offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = local_34;\n          q[6] = uVar10;\n          q[5] = uVar11;\n          q[7] = uVar12;\n        }\n        else {\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[6] = uVar11;\n          q[7] = local_34;\n        }\n        if (p[image->channel_map[2].offset] <= 0.0) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar11 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[10] = uVar11;\n          q[0xb] = uVar12;\n          q[8] = uVar10;\n          q[9] = uVar15;\n        }\n        else {\n          q[9] = uVar11;\n          q[10] = uVar15;\n          q[8] = uVar12;\n          q[0xb] = uVar10;\n        }\n        if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n           (p[image->channel_map[3].offset] <= 0.0)) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0xc] = local_34;\n          q[0xe] = uVar10;\n          q[0xd] = uVar11;\n          q[0xf] = uVar12;\n        }\n        else {\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[0xe] = uVar11;\n          q[0xf] = local_34;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0)) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar12 = '\0';\n          uVar11 = '\0';\n        }\n        else {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0x12] = uVar12;\n          q[0x13] = uVar11;\n          q[0x10] = uVar10;\n          q[0x11] = uVar15;\n        }\n        else {\n          q[0x11] = uVar12;\n          q[0x12] = uVar15;\n          q[0x10] = uVar11;\n          q[0x13] = uVar10;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x14;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);" do (compound_statement "{\n        if (p[image->channel_map->offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;\n          if (dVar4 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[1] = uVar11;\n          *q = local_34;\n          q[2] = uVar10;\n          q[3] = uVar12;\n        }\n        else {\n          q[2] = uVar11;\n          *q = uVar12;\n          q[3] = local_34;\n          q[1] = uVar10;\n        }\n        if (p[image->channel_map[1].offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[4] = local_34;\n          q[6] = uVar10;\n          q[5] = uVar11;\n          q[7] = uVar12;\n        }\n        else {\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[6] = uVar11;\n          q[7] = local_34;\n        }\n        if (p[image->channel_map[2].offset] <= 0.0) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar11 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[10] = uVar11;\n          q[0xb] = uVar12;\n          q[8] = uVar10;\n          q[9] = uVar15;\n        }\n        else {\n          q[9] = uVar11;\n          q[10] = uVar15;\n          q[8] = uVar12;\n          q[0xb] = uVar10;\n        }\n        if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n           (p[image->channel_map[3].offset] <= 0.0)) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0xc] = local_34;\n          q[0xe] = uVar10;\n          q[0xd] = uVar11;\n          q[0xf] = uVar12;\n        }\n        else {\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[0xe] = uVar11;\n          q[0xf] = local_34;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0)) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar12 = '\0';\n          uVar11 = '\0';\n        }\n        else {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (quantum_info->endian == LSBEndian) {\n          q[0x12] = uVar12;\n          q[0x13] = uVar11;\n          q[0x10] = uVar10;\n          q[0x11] = uVar15;\n        }\n        else {\n          q[0x11] = uVar12;\n          q[0x12] = uVar15;\n          q[0x10] = uVar11;\n          q[0x13] = uVar10;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x14;\n        p = p + image->number_channels;\n      }" { (if_statement "if (p[image->channel_map->offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;\n          if (dVar4 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }\n        }" if (parenthesized_expression "(p[image->channel_map->offset] <= 0.0)" ( (binary_expression "p[image->channel_map->offset] <= 0.0" (subscript_expression "p[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_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }" { (expression_statement "local_34 = '\0';" (assignment_expression "local_34 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar11 = '\0';" (assignment_expression "uVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar12 = '\0';" (assignment_expression "uVar12 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n          dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;\n          if (dVar4 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }\n        }" else (compound_statement "{\n          dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;\n          if (dVar4 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }\n        }" { (expression_statement "dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec;" (assignment_expression "dVar2 = p[image->channel_map->offset] * (double)DAT_002a7fec" identifier = (binary_expression "p[image->channel_map->offset] * (double)DAT_002a7fec" (subscript_expression "p[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 (dVar4 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }" if (parenthesized_expression "(dVar4 <= dVar2)" ( (binary_expression "dVar4 <= dVar2" identifier <= identifier) )) (compound_statement "{\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }" { (expression_statement "local_34 = 0xff;" (assignment_expression "local_34 = 0xff" identifier = number_literal) ;) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" identifier = number_literal) ;) (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_34 = (uchar)lVar3;" (assignment_expression "local_34 = (uchar)lVar3" identifier = (cast_expression "(uchar)lVar3" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);" (assignment_expression "uVar12 = (uchar)((ulonglong)lVar3 >> 0x18)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(uchar)" ( 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 "uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);" (assignment_expression "uVar10 = (uchar)((ulonglong)lVar3 >> 0x10)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x10)" ( (binary_expression "(ulonglong)lVar3 >> 0x10" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar11 = (uchar)((ulonglong)lVar3 >> 8);" (assignment_expression "uVar11 = (uchar)((ulonglong)lVar3 >> 8)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 8)" ( (binary_expression "(ulonglong)lVar3 >> 8" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (quantum_info->endian == LSBEndian) {\n          q[1] = uVar11;\n          *q = local_34;\n          q[2] = uVar10;\n          q[3] = uVar12;\n        }\n        else {\n          q[2] = uVar11;\n          *q = uVar12;\n          q[3] = local_34;\n          q[1] = uVar10;\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          q[1] = uVar11;\n          *q = local_34;\n          q[2] = uVar10;\n          q[3] = uVar12;\n        }" { (expression_statement "q[1] = uVar11;" (assignment_expression "q[1] = uVar11" (subscript_expression "q[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*q = local_34;" (assignment_expression "*q = local_34" (pointer_expression "*q" * identifier) = identifier) ;) (expression_statement "q[2] = uVar10;" (assignment_expression "q[2] = uVar10" (subscript_expression "q[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[3] = uVar12;" (assignment_expression "q[3] = uVar12" (subscript_expression "q[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          q[2] = uVar11;\n          *q = uVar12;\n          q[3] = local_34;\n          q[1] = uVar10;\n        }" else (compound_statement "{\n          q[2] = uVar11;\n          *q = uVar12;\n          q[3] = local_34;\n          q[1] = uVar10;\n        }" { (expression_statement "q[2] = uVar11;" (assignment_expression "q[2] = uVar11" (subscript_expression "q[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*q = uVar12;" (assignment_expression "*q = uVar12" (pointer_expression "*q" * identifier) = identifier) ;) (expression_statement "q[3] = local_34;" (assignment_expression "q[3] = local_34" (subscript_expression "q[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[1] = uVar10;" (assignment_expression "q[1] = uVar10" (subscript_expression "q[1]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (p[image->channel_map[1].offset] <= 0.0) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }" if (parenthesized_expression "(p[image->channel_map[1].offset] <= 0.0)" ( (binary_expression "p[image->channel_map[1].offset] <= 0.0" (subscript_expression "p[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_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }" { (expression_statement "local_34 = '\0';" (assignment_expression "local_34 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar11 = '\0';" (assignment_expression "uVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar12 = '\0';" (assignment_expression "uVar12 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n          dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }" else (compound_statement "{\n          dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }" { (expression_statement "dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec;" (assignment_expression "dVar2 = p[image->channel_map[1].offset] * (double)DAT_002a7fec" identifier = (binary_expression "p[image->channel_map[1].offset] * (double)DAT_002a7fec" (subscript_expression "p[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 (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }" if (parenthesized_expression "(DAT_002a8000 <= dVar2)" ( (binary_expression "DAT_002a8000 <= dVar2" identifier <= identifier) )) (compound_statement "{\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }" { (expression_statement "local_34 = 0xff;" (assignment_expression "local_34 = 0xff" identifier = number_literal) ;) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" identifier = number_literal) ;) (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_34 = (uchar)lVar3;" (assignment_expression "local_34 = (uchar)lVar3" identifier = (cast_expression "(uchar)lVar3" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "uVar11 = (uchar)((ulonglong)lVar3 >> 8);" (assignment_expression "uVar11 = (uchar)((ulonglong)lVar3 >> 8)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(uchar)" ( 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 "uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);" (assignment_expression "uVar12 = (uchar)((ulonglong)lVar3 >> 0x18)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(uchar)" ( 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 "uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);" (assignment_expression "uVar10 = (uchar)((ulonglong)lVar3 >> 0x10)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(uchar)" ( 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          q[4] = local_34;\n          q[6] = uVar10;\n          q[5] = uVar11;\n          q[7] = uVar12;\n        }\n        else {\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[6] = uVar11;\n          q[7] = local_34;\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          q[4] = local_34;\n          q[6] = uVar10;\n          q[5] = uVar11;\n          q[7] = uVar12;\n        }" { (expression_statement "q[4] = local_34;" (assignment_expression "q[4] = local_34" (subscript_expression "q[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[6] = uVar10;" (assignment_expression "q[6] = uVar10" (subscript_expression "q[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[5] = uVar11;" (assignment_expression "q[5] = uVar11" (subscript_expression "q[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[7] = uVar12;" (assignment_expression "q[7] = uVar12" (subscript_expression "q[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[6] = uVar11;\n          q[7] = local_34;\n        }" else (compound_statement "{\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[6] = uVar11;\n          q[7] = local_34;\n        }" { (expression_statement "q[4] = uVar12;" (assignment_expression "q[4] = uVar12" (subscript_expression "q[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[5] = uVar10;" (assignment_expression "q[5] = uVar10" (subscript_expression "q[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[6] = uVar11;" (assignment_expression "q[6] = uVar11" (subscript_expression "q[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[7] = local_34;" (assignment_expression "q[7] = local_34" (subscript_expression "q[7]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (p[image->channel_map[2].offset] <= 0.0) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar11 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }" if (parenthesized_expression "(p[image->channel_map[2].offset] <= 0.0)" ( (binary_expression "p[image->channel_map[2].offset] <= 0.0" (subscript_expression "p[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          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar11 = '\0';\n          uVar12 = '\0';\n        }" { (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar15 = '\0';" (assignment_expression "uVar15 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar11 = '\0';" (assignment_expression "uVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar12 = '\0';" (assignment_expression "uVar12 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n          dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }" else (compound_statement "{\n          dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }" { (expression_statement "dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec;" (assignment_expression "dVar2 = p[image->channel_map[2].offset] * (double)DAT_002a7fec" identifier = (binary_expression "p[image->channel_map[2].offset] * (double)DAT_002a7fec" (subscript_expression "p[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 (DAT_002a8000 <= dVar2) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }" if (parenthesized_expression "(DAT_002a8000 <= dVar2)" ( (binary_expression "DAT_002a8000 <= dVar2" identifier <= identifier) )) (compound_statement "{\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar11 = 0xff;\n            uVar12 = 0xff;\n          }" { (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" identifier = number_literal) ;) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" identifier = number_literal) ;) (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uVar15 = (uchar)((ulonglong)lVar3 >> 8);" (assignment_expression "uVar15 = (uchar)((ulonglong)lVar3 >> 8)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(uchar)" ( 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 "uVar10 = (uchar)lVar3;" (assignment_expression "uVar10 = (uchar)lVar3" identifier = (cast_expression "(uchar)lVar3" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);" (assignment_expression "uVar12 = (uchar)((ulonglong)lVar3 >> 0x18)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(uchar)" ( 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 "uVar11 = (uchar)((ulonglong)lVar3 >> 0x10);" (assignment_expression "uVar11 = (uchar)((ulonglong)lVar3 >> 0x10)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(uchar)" ( 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          q[10] = uVar11;\n          q[0xb] = uVar12;\n          q[8] = uVar10;\n          q[9] = uVar15;\n        }\n        else {\n          q[9] = uVar11;\n          q[10] = uVar15;\n          q[8] = uVar12;\n          q[0xb] = uVar10;\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          q[10] = uVar11;\n          q[0xb] = uVar12;\n          q[8] = uVar10;\n          q[9] = uVar15;\n        }" { (expression_statement "q[10] = uVar11;" (assignment_expression "q[10] = uVar11" (subscript_expression "q[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xb] = uVar12;" (assignment_expression "q[0xb] = uVar12" (subscript_expression "q[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[8] = uVar10;" (assignment_expression "q[8] = uVar10" (subscript_expression "q[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[9] = uVar15;" (assignment_expression "q[9] = uVar15" (subscript_expression "q[9]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          q[9] = uVar11;\n          q[10] = uVar15;\n          q[8] = uVar12;\n          q[0xb] = uVar10;\n        }" else (compound_statement "{\n          q[9] = uVar11;\n          q[10] = uVar15;\n          q[8] = uVar12;\n          q[0xb] = uVar10;\n        }" { (expression_statement "q[9] = uVar11;" (assignment_expression "q[9] = uVar11" (subscript_expression "q[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[10] = uVar15;" (assignment_expression "q[10] = uVar15" (subscript_expression "q[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[8] = uVar12;" (assignment_expression "q[8] = uVar12" (subscript_expression "q[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xb] = uVar10;" (assignment_expression "q[0xb] = uVar10" (subscript_expression "q[0xb]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n           (p[image->channel_map[3].offset] <= 0.0)) {\n          local_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }" if (parenthesized_expression "((image->channel_map[3].traits == UndefinedPixelTrait) ||\n           (p[image->channel_map[3].offset] <= 0.0))" ( (binary_expression "(image->channel_map[3].traits == UndefinedPixelTrait) ||\n           (p[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 "(p[image->channel_map[3].offset] <= 0.0)" ( (binary_expression "p[image->channel_map[3].offset] <= 0.0" (subscript_expression "p[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_34 = '\0';\n          uVar11 = '\0';\n          uVar10 = '\0';\n          uVar12 = '\0';\n        }" { (expression_statement "local_34 = '\0';" (assignment_expression "local_34 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar11 = '\0';" (assignment_expression "uVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar12 = '\0';" (assignment_expression "uVar12 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n          dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }" else (compound_statement "{\n          dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }" { (expression_statement "dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec;" (assignment_expression "dVar2 = p[image->channel_map[3].offset] * (double)DAT_002a7fec" identifier = (binary_expression "p[image->channel_map[3].offset] * (double)DAT_002a7fec" (subscript_expression "p[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 (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }" if (parenthesized_expression "(DAT_002a8000 <= dVar2)" ( (binary_expression "DAT_002a8000 <= dVar2" identifier <= identifier) )) (compound_statement "{\n            local_34 = 0xff;\n            uVar11 = 0xff;\n            uVar10 = 0xff;\n            uVar12 = 0xff;\n          }" { (expression_statement "local_34 = 0xff;" (assignment_expression "local_34 = 0xff" identifier = number_literal) ;) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" identifier = number_literal) ;) (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_34 = (uchar)lVar3;" (assignment_expression "local_34 = (uchar)lVar3" identifier = (cast_expression "(uchar)lVar3" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "uVar11 = (uchar)((ulonglong)lVar3 >> 8);" (assignment_expression "uVar11 = (uchar)((ulonglong)lVar3 >> 8)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(uchar)" ( 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 "uVar12 = (uchar)((ulonglong)lVar3 >> 0x18);" (assignment_expression "uVar12 = (uchar)((ulonglong)lVar3 >> 0x18)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(uchar)" ( 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 "uVar10 = (uchar)((ulonglong)lVar3 >> 0x10);" (assignment_expression "uVar10 = (uchar)((ulonglong)lVar3 >> 0x10)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(uchar)" ( 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          q[0xc] = local_34;\n          q[0xe] = uVar10;\n          q[0xd] = uVar11;\n          q[0xf] = uVar12;\n        }\n        else {\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[0xe] = uVar11;\n          q[0xf] = local_34;\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          q[0xc] = local_34;\n          q[0xe] = uVar10;\n          q[0xd] = uVar11;\n          q[0xf] = uVar12;\n        }" { (expression_statement "q[0xc] = local_34;" (assignment_expression "q[0xc] = local_34" (subscript_expression "q[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xe] = uVar10;" (assignment_expression "q[0xe] = uVar10" (subscript_expression "q[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xd] = uVar11;" (assignment_expression "q[0xd] = uVar11" (subscript_expression "q[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xf] = uVar12;" (assignment_expression "q[0xf] = uVar12" (subscript_expression "q[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[0xe] = uVar11;\n          q[0xf] = local_34;\n        }" else (compound_statement "{\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[0xe] = uVar11;\n          q[0xf] = local_34;\n        }" { (expression_statement "q[0xc] = uVar12;" (assignment_expression "q[0xc] = uVar12" (subscript_expression "q[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xd] = uVar10;" (assignment_expression "q[0xd] = uVar10" (subscript_expression "q[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xe] = uVar11;" (assignment_expression "q[0xe] = uVar11" (subscript_expression "q[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xf] = local_34;" (assignment_expression "q[0xf] = local_34" (subscript_expression "q[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0)) {\n          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar12 = '\0';\n          uVar11 = '\0';\n        }\n        else {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }" if (parenthesized_expression "((image->channel_map[4].traits != BlendPixelTrait) ||\n           (DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0))" ( (binary_expression "(image->channel_map[4].traits != BlendPixelTrait) ||\n           (DAT_0029f710 - (float)p[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 "(DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0)" ( (binary_expression "DAT_0029f710 - (float)p[image->channel_map[4].offset] <= 0.0" (binary_expression "DAT_0029f710 - (float)p[image->channel_map[4].offset]" identifier - (cast_expression "(float)p[image->channel_map[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "p[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          uVar10 = '\0';\n          uVar15 = '\0';\n          uVar12 = '\0';\n          uVar11 = '\0';\n        }" { (expression_statement "uVar10 = '\0';" (assignment_expression "uVar10 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar15 = '\0';" (assignment_expression "uVar15 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar12 = '\0';" (assignment_expression "uVar12 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar11 = '\0';" (assignment_expression "uVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }" else (compound_statement "{\n          fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }\n        }" { (expression_statement "fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec;" (assignment_expression "fVar1 = (DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec" identifier = (binary_expression "(DAT_0029f710 - (float)p[image->channel_map[4].offset]) * DAT_002a7fec" (parenthesized_expression "(DAT_0029f710 - (float)p[image->channel_map[4].offset])" ( (binary_expression "DAT_0029f710 - (float)p[image->channel_map[4].offset]" identifier - (cast_expression "(float)p[image->channel_map[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "p[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 ((float)DAT_002a8000 <= fVar1) {\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }" if (parenthesized_expression "((float)DAT_002a8000 <= fVar1)" ( (binary_expression "(float)DAT_002a8000 <= fVar1" (cast_expression "(float)DAT_002a8000" ( (type_descriptor "float" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n            uVar10 = 0xff;\n            uVar15 = 0xff;\n            uVar12 = 0xff;\n            uVar11 = 0xff;\n          }" { (expression_statement "uVar10 = 0xff;" (assignment_expression "uVar10 = 0xff" identifier = number_literal) ;) (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" identifier = number_literal) ;) (expression_statement "uVar12 = 0xff;" (assignment_expression "uVar12 = 0xff" identifier = number_literal) ;) (expression_statement "uVar11 = 0xff;" (assignment_expression "uVar11 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            uVar15 = (uchar)((ulonglong)lVar3 >> 8);\n            uVar10 = (uchar)lVar3;\n            uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);\n            uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(fVar1 + DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(fVar1 + DAT_0029f124)" identifier (argument_list "(fVar1 + DAT_0029f124)" ( (binary_expression "fVar1 + DAT_0029f124" identifier + identifier) ))))) ;) (expression_statement "uVar15 = (uchar)((ulonglong)lVar3 >> 8);" (assignment_expression "uVar15 = (uchar)((ulonglong)lVar3 >> 8)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(uchar)" ( 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 "uVar10 = (uchar)lVar3;" (assignment_expression "uVar10 = (uchar)lVar3" identifier = (cast_expression "(uchar)lVar3" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "uVar11 = (uchar)((ulonglong)lVar3 >> 0x18);" (assignment_expression "uVar11 = (uchar)((ulonglong)lVar3 >> 0x18)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(uchar)" ( 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 "uVar12 = (uchar)((ulonglong)lVar3 >> 0x10);" (assignment_expression "uVar12 = (uchar)((ulonglong)lVar3 >> 0x10)" identifier = (call_expression "(uchar)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(uchar)" ( 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          q[0x12] = uVar12;\n          q[0x13] = uVar11;\n          q[0x10] = uVar10;\n          q[0x11] = uVar15;\n        }\n        else {\n          q[0x11] = uVar12;\n          q[0x12] = uVar15;\n          q[0x10] = uVar11;\n          q[0x13] = uVar10;\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          q[0x12] = uVar12;\n          q[0x13] = uVar11;\n          q[0x10] = uVar10;\n          q[0x11] = uVar15;\n        }" { (expression_statement "q[0x12] = uVar12;" (assignment_expression "q[0x12] = uVar12" (subscript_expression "q[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x13] = uVar11;" (assignment_expression "q[0x13] = uVar11" (subscript_expression "q[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x10] = uVar10;" (assignment_expression "q[0x10] = uVar10" (subscript_expression "q[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x11] = uVar15;" (assignment_expression "q[0x11] = uVar15" (subscript_expression "q[0x11]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          q[0x11] = uVar12;\n          q[0x12] = uVar15;\n          q[0x10] = uVar11;\n          q[0x13] = uVar10;\n        }" else (compound_statement "{\n          q[0x11] = uVar12;\n          q[0x12] = uVar15;\n          q[0x10] = uVar11;\n          q[0x13] = uVar10;\n        }" { (expression_statement "q[0x11] = uVar12;" (assignment_expression "q[0x11] = uVar12" (subscript_expression "q[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x12] = uVar15;" (assignment_expression "q[0x12] = uVar15" (subscript_expression "q[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x10] = uVar11;" (assignment_expression "q[0x10] = uVar11" (subscript_expression "q[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x13] = uVar10;" (assignment_expression "q[0x13] = uVar10" (subscript_expression "q[0x13]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "q = q + quantum_info->pad + 0x14;" (assignment_expression "q = q + quantum_info->pad + 0x14" identifier = (binary_expression "q + quantum_info->pad + 0x14" (binary_expression "q + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) (expression_statement "p = p + image->number_channels;" (assignment_expression "p = p + image->number_channels" identifier = (binary_expression "p + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(local_64 != (int)number_pixels)" ( (binary_expression "local_64 != (int)number_pixels" identifier != (cast_expression "(int)number_pixels" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar17 != 0x40) goto LAB_0013d3f8;" if (parenthesized_expression "(uVar17 != 0x40)" ( (binary_expression "uVar17 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_0013d3f8;" goto statement_identifier ;)) (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = p[image->channel_map->offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = SUB81(dVar2,0);\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[1] = local_8c;\n          q[2] = local_6c;\n          q[3] = local_74;\n          q[6] = local_7c;\n          q[7] = local_84;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = uVar12;\n          q[7] = SUB81(dVar2,0);\n          q[4] = local_74;\n          *q = local_84;\n          q[5] = local_6c;\n          q[1] = local_7c;\n          q[6] = local_8c;\n        }\n        dVar2 = p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = SUB81(dVar2,0);\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[9] = local_8c;\n          q[0xe] = local_7c;\n          q[0xf] = local_84;\n          q[10] = local_6c;\n          q[0xb] = local_74;\n        }\n        else {\n          q[0xb] = uVar12;\n          q[10] = uVar10;\n          q[0xf] = SUB81(dVar2,0);\n          q[0xc] = local_74;\n          q[8] = local_84;\n          q[0xd] = local_6c;\n          q[9] = local_7c;\n          q[0xe] = local_8c;\n        }\n        dVar2 = p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x14] = uVar10;\n          q[0x10] = SUB81(dVar2,0);\n          q[0x11] = local_8c;\n          q[0x12] = local_6c;\n          q[0x13] = local_74;\n          q[0x15] = uVar12;\n          q[0x16] = local_7c;\n          q[0x17] = local_84;\n        }\n        else {\n          q[0x13] = uVar10;\n          q[0x17] = SUB81(dVar2,0);\n          q[0x10] = local_84;\n          q[0x11] = local_7c;\n          q[0x12] = uVar12;\n          q[0x14] = local_74;\n          q[0x15] = local_6c;\n          q[0x16] = local_8c;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset];\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x1c] = uVar10;\n          q[0x1d] = uVar12;\n          q[0x18] = SUB81(dVar2,0);\n          q[0x19] = local_8c;\n          q[0x1e] = local_7c;\n          q[0x1a] = local_6c;\n          q[0x1b] = local_74;\n          q[0x1f] = local_84;\n        }\n        else {\n          q[0x1b] = uVar10;\n          q[0x1f] = SUB81(dVar2,0);\n          q[0x1c] = local_74;\n          q[0x18] = local_84;\n          q[0x1d] = local_6c;\n          q[0x19] = local_7c;\n          q[0x1a] = uVar12;\n          q[0x1e] = local_8c;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset];\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x20] = SUB81(dVar2,0);\n          q[0x24] = uVar10;\n          q[0x21] = local_8c;\n          q[0x22] = local_6c;\n          q[0x23] = local_74;\n          q[0x25] = uVar12;\n          q[0x26] = local_7c;\n          q[0x27] = local_84;\n        }\n        else {\n          q[0x23] = uVar10;\n          q[0x27] = SUB81(dVar2,0);\n          q[0x20] = local_84;\n          q[0x21] = local_7c;\n          q[0x22] = uVar12;\n          q[0x24] = local_74;\n          q[0x25] = local_6c;\n          q[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x28;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\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 ((int)number_pixels < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = p[image->channel_map->offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = SUB81(dVar2,0);\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[1] = local_8c;\n          q[2] = local_6c;\n          q[3] = local_74;\n          q[6] = local_7c;\n          q[7] = local_84;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = uVar12;\n          q[7] = SUB81(dVar2,0);\n          q[4] = local_74;\n          *q = local_84;\n          q[5] = local_6c;\n          q[1] = local_7c;\n          q[6] = local_8c;\n        }\n        dVar2 = p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = SUB81(dVar2,0);\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[9] = local_8c;\n          q[0xe] = local_7c;\n          q[0xf] = local_84;\n          q[10] = local_6c;\n          q[0xb] = local_74;\n        }\n        else {\n          q[0xb] = uVar12;\n          q[10] = uVar10;\n          q[0xf] = SUB81(dVar2,0);\n          q[0xc] = local_74;\n          q[8] = local_84;\n          q[0xd] = local_6c;\n          q[9] = local_7c;\n          q[0xe] = local_8c;\n        }\n        dVar2 = p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x14] = uVar10;\n          q[0x10] = SUB81(dVar2,0);\n          q[0x11] = local_8c;\n          q[0x12] = local_6c;\n          q[0x13] = local_74;\n          q[0x15] = uVar12;\n          q[0x16] = local_7c;\n          q[0x17] = local_84;\n        }\n        else {\n          q[0x13] = uVar10;\n          q[0x17] = SUB81(dVar2,0);\n          q[0x10] = local_84;\n          q[0x11] = local_7c;\n          q[0x12] = uVar12;\n          q[0x14] = local_74;\n          q[0x15] = local_6c;\n          q[0x16] = local_8c;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset];\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x1c] = uVar10;\n          q[0x1d] = uVar12;\n          q[0x18] = SUB81(dVar2,0);\n          q[0x19] = local_8c;\n          q[0x1e] = local_7c;\n          q[0x1a] = local_6c;\n          q[0x1b] = local_74;\n          q[0x1f] = local_84;\n        }\n        else {\n          q[0x1b] = uVar10;\n          q[0x1f] = SUB81(dVar2,0);\n          q[0x1c] = local_74;\n          q[0x18] = local_84;\n          q[0x1d] = local_6c;\n          q[0x19] = local_7c;\n          q[0x1a] = uVar12;\n          q[0x1e] = local_8c;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset];\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x20] = SUB81(dVar2,0);\n          q[0x24] = uVar10;\n          q[0x21] = local_8c;\n          q[0x22] = local_6c;\n          q[0x23] = local_74;\n          q[0x25] = uVar12;\n          q[0x26] = local_7c;\n          q[0x27] = local_84;\n        }\n        else {\n          q[0x23] = uVar10;\n          q[0x27] = SUB81(dVar2,0);\n          q[0x20] = local_84;\n          q[0x21] = local_7c;\n          q[0x22] = uVar12;\n          q[0x24] = local_74;\n          q[0x25] = local_6c;\n          q[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x28;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);\n      return;\n    }" { (if_statement "if ((int)number_pixels < 1) {\n        return;\n      }" if (parenthesized_expression "((int)number_pixels < 1)" ( (binary_expression "(int)number_pixels < 1" (cast_expression "(int)number_pixels" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n        dVar2 = p[image->channel_map->offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = SUB81(dVar2,0);\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[1] = local_8c;\n          q[2] = local_6c;\n          q[3] = local_74;\n          q[6] = local_7c;\n          q[7] = local_84;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = uVar12;\n          q[7] = SUB81(dVar2,0);\n          q[4] = local_74;\n          *q = local_84;\n          q[5] = local_6c;\n          q[1] = local_7c;\n          q[6] = local_8c;\n        }\n        dVar2 = p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = SUB81(dVar2,0);\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[9] = local_8c;\n          q[0xe] = local_7c;\n          q[0xf] = local_84;\n          q[10] = local_6c;\n          q[0xb] = local_74;\n        }\n        else {\n          q[0xb] = uVar12;\n          q[10] = uVar10;\n          q[0xf] = SUB81(dVar2,0);\n          q[0xc] = local_74;\n          q[8] = local_84;\n          q[0xd] = local_6c;\n          q[9] = local_7c;\n          q[0xe] = local_8c;\n        }\n        dVar2 = p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x14] = uVar10;\n          q[0x10] = SUB81(dVar2,0);\n          q[0x11] = local_8c;\n          q[0x12] = local_6c;\n          q[0x13] = local_74;\n          q[0x15] = uVar12;\n          q[0x16] = local_7c;\n          q[0x17] = local_84;\n        }\n        else {\n          q[0x13] = uVar10;\n          q[0x17] = SUB81(dVar2,0);\n          q[0x10] = local_84;\n          q[0x11] = local_7c;\n          q[0x12] = uVar12;\n          q[0x14] = local_74;\n          q[0x15] = local_6c;\n          q[0x16] = local_8c;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset];\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x1c] = uVar10;\n          q[0x1d] = uVar12;\n          q[0x18] = SUB81(dVar2,0);\n          q[0x19] = local_8c;\n          q[0x1e] = local_7c;\n          q[0x1a] = local_6c;\n          q[0x1b] = local_74;\n          q[0x1f] = local_84;\n        }\n        else {\n          q[0x1b] = uVar10;\n          q[0x1f] = SUB81(dVar2,0);\n          q[0x1c] = local_74;\n          q[0x18] = local_84;\n          q[0x1d] = local_6c;\n          q[0x19] = local_7c;\n          q[0x1a] = uVar12;\n          q[0x1e] = local_8c;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset];\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x20] = SUB81(dVar2,0);\n          q[0x24] = uVar10;\n          q[0x21] = local_8c;\n          q[0x22] = local_6c;\n          q[0x23] = local_74;\n          q[0x25] = uVar12;\n          q[0x26] = local_7c;\n          q[0x27] = local_84;\n        }\n        else {\n          q[0x23] = uVar10;\n          q[0x27] = SUB81(dVar2,0);\n          q[0x20] = local_84;\n          q[0x21] = local_7c;\n          q[0x22] = uVar12;\n          q[0x24] = local_74;\n          q[0x25] = local_6c;\n          q[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x28;\n        p = p + image->number_channels;\n      } while (local_64 != (int)number_pixels);" do (compound_statement "{\n        dVar2 = p[image->channel_map->offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          *q = SUB81(dVar2,0);\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[1] = local_8c;\n          q[2] = local_6c;\n          q[3] = local_74;\n          q[6] = local_7c;\n          q[7] = local_84;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = uVar12;\n          q[7] = SUB81(dVar2,0);\n          q[4] = local_74;\n          *q = local_84;\n          q[5] = local_6c;\n          q[1] = local_7c;\n          q[6] = local_8c;\n        }\n        dVar2 = p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[8] = SUB81(dVar2,0);\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[9] = local_8c;\n          q[0xe] = local_7c;\n          q[0xf] = local_84;\n          q[10] = local_6c;\n          q[0xb] = local_74;\n        }\n        else {\n          q[0xb] = uVar12;\n          q[10] = uVar10;\n          q[0xf] = SUB81(dVar2,0);\n          q[0xc] = local_74;\n          q[8] = local_84;\n          q[0xd] = local_6c;\n          q[9] = local_7c;\n          q[0xe] = local_8c;\n        }\n        dVar2 = p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x14] = uVar10;\n          q[0x10] = SUB81(dVar2,0);\n          q[0x11] = local_8c;\n          q[0x12] = local_6c;\n          q[0x13] = local_74;\n          q[0x15] = uVar12;\n          q[0x16] = local_7c;\n          q[0x17] = local_84;\n        }\n        else {\n          q[0x13] = uVar10;\n          q[0x17] = SUB81(dVar2,0);\n          q[0x10] = local_84;\n          q[0x11] = local_7c;\n          q[0x12] = uVar12;\n          q[0x14] = local_74;\n          q[0x15] = local_6c;\n          q[0x16] = local_8c;\n        }\n        if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = p[image->channel_map[3].offset];\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x1c] = uVar10;\n          q[0x1d] = uVar12;\n          q[0x18] = SUB81(dVar2,0);\n          q[0x19] = local_8c;\n          q[0x1e] = local_7c;\n          q[0x1a] = local_6c;\n          q[0x1b] = local_74;\n          q[0x1f] = local_84;\n        }\n        else {\n          q[0x1b] = uVar10;\n          q[0x1f] = SUB81(dVar2,0);\n          q[0x1c] = local_74;\n          q[0x18] = local_84;\n          q[0x1d] = local_6c;\n          q[0x19] = local_7c;\n          q[0x1a] = uVar12;\n          q[0x1e] = local_8c;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset];\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);\n        uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);\n        local_84 = (uchar)((ulonglong)dVar2 >> 0x38);\n        local_7c = (uchar)((ulonglong)dVar2 >> 0x30);\n        local_74 = (uchar)((ulonglong)dVar2 >> 0x18);\n        local_6c = (uchar)((ulonglong)dVar2 >> 0x10);\n        local_8c = (uchar)((ulonglong)dVar2 >> 8);\n        if (quantum_info->endian == LSBEndian) {\n          q[0x20] = SUB81(dVar2,0);\n          q[0x24] = uVar10;\n          q[0x21] = local_8c;\n          q[0x22] = local_6c;\n          q[0x23] = local_74;\n          q[0x25] = uVar12;\n          q[0x26] = local_7c;\n          q[0x27] = local_84;\n        }\n        else {\n          q[0x23] = uVar10;\n          q[0x27] = SUB81(dVar2,0);\n          q[0x20] = local_84;\n          q[0x21] = local_7c;\n          q[0x22] = uVar12;\n          q[0x24] = local_74;\n          q[0x25] = local_6c;\n          q[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        q = q + quantum_info->pad + 0x28;\n        p = p + image->number_channels;\n      }" { (expression_statement "dVar2 = p[image->channel_map->offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;" (assignment_expression "dVar2 = p[image->channel_map->offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum" identifier = (binary_expression "p[image->channel_map->offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum" (binary_expression "p[image->channel_map->offset] * (quantum_info->state).inverse_scale" (subscript_expression "p[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ]) * (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) + (field_expression "quantum_info->minimum" identifier -> field_identifier))) ;) (expression_statement "uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);" (assignment_expression "uVar10 = (uchar)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);" (assignment_expression "uVar12 = (uchar)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uchar)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (uchar)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (uchar)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (uchar)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (uchar)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (uchar)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (uchar)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (uchar)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (uchar)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (uchar)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n          *q = SUB81(dVar2,0);\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[1] = local_8c;\n          q[2] = local_6c;\n          q[3] = local_74;\n          q[6] = local_7c;\n          q[7] = local_84;\n        }\n        else {\n          q[2] = uVar10;\n          q[3] = uVar12;\n          q[7] = SUB81(dVar2,0);\n          q[4] = local_74;\n          *q = local_84;\n          q[5] = local_6c;\n          q[1] = local_7c;\n          q[6] = local_8c;\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          *q = SUB81(dVar2,0);\n          q[4] = uVar12;\n          q[5] = uVar10;\n          q[1] = local_8c;\n          q[2] = local_6c;\n          q[3] = local_74;\n          q[6] = local_7c;\n          q[7] = local_84;\n        }" { (expression_statement "*q = SUB81(dVar2,0);" (assignment_expression "*q = SUB81(dVar2,0)" (pointer_expression "*q" * identifier) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "q[4] = uVar12;" (assignment_expression "q[4] = uVar12" (subscript_expression "q[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[5] = uVar10;" (assignment_expression "q[5] = uVar10" (subscript_expression "q[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[1] = local_8c;" (assignment_expression "q[1] = local_8c" (subscript_expression "q[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[2] = local_6c;" (assignment_expression "q[2] = local_6c" (subscript_expression "q[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[3] = local_74;" (assignment_expression "q[3] = local_74" (subscript_expression "q[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[6] = local_7c;" (assignment_expression "q[6] = local_7c" (subscript_expression "q[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[7] = local_84;" (assignment_expression "q[7] = local_84" (subscript_expression "q[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          q[2] = uVar10;\n          q[3] = uVar12;\n          q[7] = SUB81(dVar2,0);\n          q[4] = local_74;\n          *q = local_84;\n          q[5] = local_6c;\n          q[1] = local_7c;\n          q[6] = local_8c;\n        }" else (compound_statement "{\n          q[2] = uVar10;\n          q[3] = uVar12;\n          q[7] = SUB81(dVar2,0);\n          q[4] = local_74;\n          *q = local_84;\n          q[5] = local_6c;\n          q[1] = local_7c;\n          q[6] = local_8c;\n        }" { (expression_statement "q[2] = uVar10;" (assignment_expression "q[2] = uVar10" (subscript_expression "q[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[3] = uVar12;" (assignment_expression "q[3] = uVar12" (subscript_expression "q[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[7] = SUB81(dVar2,0);" (assignment_expression "q[7] = SUB81(dVar2,0)" (subscript_expression "q[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "q[4] = local_74;" (assignment_expression "q[4] = local_74" (subscript_expression "q[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*q = local_84;" (assignment_expression "*q = local_84" (pointer_expression "*q" * identifier) = identifier) ;) (expression_statement "q[5] = local_6c;" (assignment_expression "q[5] = local_6c" (subscript_expression "q[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[1] = local_7c;" (assignment_expression "q[1] = local_7c" (subscript_expression "q[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[6] = local_8c;" (assignment_expression "q[6] = local_8c" (subscript_expression "q[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;" (assignment_expression "dVar2 = p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum" identifier = (binary_expression "p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum" (binary_expression "p[image->channel_map[1].offset] * (quantum_info->state).inverse_scale" (subscript_expression "p[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) ]) * (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) + (field_expression "quantum_info->minimum" identifier -> field_identifier))) ;) (expression_statement "uVar10 = (uchar)((ulonglong)dVar2 >> 0x28);" (assignment_expression "uVar10 = (uchar)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar12 = (uchar)((ulonglong)dVar2 >> 0x20);" (assignment_expression "uVar12 = (uchar)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uchar)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (uchar)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (uchar)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (uchar)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (uchar)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (uchar)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (uchar)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (uchar)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (uchar)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (uchar)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n          q[8] = SUB81(dVar2,0);\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[9] = local_8c;\n          q[0xe] = local_7c;\n          q[0xf] = local_84;\n          q[10] = local_6c;\n          q[0xb] = local_74;\n        }\n        else {\n          q[0xb] = uVar12;\n          q[10] = uVar10;\n          q[0xf] = SUB81(dVar2,0);\n          q[0xc] = local_74;\n          q[8] = local_84;\n          q[0xd] = local_6c;\n          q[9] = local_7c;\n          q[0xe] = local_8c;\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          q[8] = SUB81(dVar2,0);\n          q[0xc] = uVar12;\n          q[0xd] = uVar10;\n          q[9] = local_8c;\n          q[0xe] = local_7c;\n          q[0xf] = local_84;\n          q[10] = local_6c;\n          q[0xb] = local_74;\n        }" { (expression_statement "q[8] = SUB81(dVar2,0);" (assignment_expression "q[8] = SUB81(dVar2,0)" (subscript_expression "q[8]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "q[0xc] = uVar12;" (assignment_expression "q[0xc] = uVar12" (subscript_expression "q[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xd] = uVar10;" (assignment_expression "q[0xd] = uVar10" (subscript_expression "q[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[9] = local_8c;" (assignment_expression "q[9] = local_8c" (subscript_expression "q[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xe] = local_7c;" (assignment_expression "q[0xe] = local_7c" (subscript_expression "q[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xf] = local_84;" (assignment_expression "q[0xf] = local_84" (subscript_expression "q[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[10] = local_6c;" (assignment_expression "q[10] = local_6c" (subscript_expression "q[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xb] = local_74;" (assignment_expression "q[0xb] = local_74" (subscript_expression "q[0xb]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          q[0xb] = uVar12;\n          q[10] = uVar10;\n          q[0xf] = SUB81(dVar2,0);\n          q[0xc] = local_74;\n          q[8] = local_84;\n          q[0xd] = local_6c;\n          q[9] = local_7c;\n          q[0xe] = local_8c;\n        }" else (compound_statement "{\n          q[0xb] = uVar12;\n          q[10] = uVar10;\n          q[0xf] = SUB81(dVar2,0);\n          q[0xc] = local_74;\n          q[8] = local_84;\n          q[0xd] = local_6c;\n          q[9] = local_7c;\n          q[0xe] = local_8c;\n        }" { (expression_statement "q[0xb] = uVar12;" (assignment_expression "q[0xb] = uVar12" (subscript_expression "q[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[10] = uVar10;" (assignment_expression "q[10] = uVar10" (subscript_expression "q[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xf] = SUB81(dVar2,0);" (assignment_expression "q[0xf] = SUB81(dVar2,0)" (subscript_expression "q[0xf]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "q[0xc] = local_74;" (assignment_expression "q[0xc] = local_74" (subscript_expression "q[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[8] = local_84;" (assignment_expression "q[8] = local_84" (subscript_expression "q[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xd] = local_6c;" (assignment_expression "q[0xd] = local_6c" (subscript_expression "q[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[9] = local_7c;" (assignment_expression "q[9] = local_7c" (subscript_expression "q[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0xe] = local_8c;" (assignment_expression "q[0xe] = local_8c" (subscript_expression "q[0xe]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum;" (assignment_expression "dVar2 = p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum" identifier = (binary_expression "p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +\n                quantum_info->minimum" (binary_expression "p[image->channel_map[2].offset] * (quantum_info->state).inverse_scale" (subscript_expression "p[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) ]) * (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) + (field_expression "quantum_info->minimum" identifier -> field_identifier))) ;) (expression_statement "uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);" (assignment_expression "uVar10 = (uchar)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);" (assignment_expression "uVar12 = (uchar)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (uchar)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (uchar)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (uchar)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (uchar)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uchar)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (uchar)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (uchar)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (uchar)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (uchar)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (uchar)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n          q[0x14] = uVar10;\n          q[0x10] = SUB81(dVar2,0);\n          q[0x11] = local_8c;\n          q[0x12] = local_6c;\n          q[0x13] = local_74;\n          q[0x15] = uVar12;\n          q[0x16] = local_7c;\n          q[0x17] = local_84;\n        }\n        else {\n          q[0x13] = uVar10;\n          q[0x17] = SUB81(dVar2,0);\n          q[0x10] = local_84;\n          q[0x11] = local_7c;\n          q[0x12] = uVar12;\n          q[0x14] = local_74;\n          q[0x15] = local_6c;\n          q[0x16] = local_8c;\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          q[0x14] = uVar10;\n          q[0x10] = SUB81(dVar2,0);\n          q[0x11] = local_8c;\n          q[0x12] = local_6c;\n          q[0x13] = local_74;\n          q[0x15] = uVar12;\n          q[0x16] = local_7c;\n          q[0x17] = local_84;\n        }" { (expression_statement "q[0x14] = uVar10;" (assignment_expression "q[0x14] = uVar10" (subscript_expression "q[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x10] = SUB81(dVar2,0);" (assignment_expression "q[0x10] = SUB81(dVar2,0)" (subscript_expression "q[0x10]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "q[0x11] = local_8c;" (assignment_expression "q[0x11] = local_8c" (subscript_expression "q[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x12] = local_6c;" (assignment_expression "q[0x12] = local_6c" (subscript_expression "q[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x13] = local_74;" (assignment_expression "q[0x13] = local_74" (subscript_expression "q[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x15] = uVar12;" (assignment_expression "q[0x15] = uVar12" (subscript_expression "q[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x16] = local_7c;" (assignment_expression "q[0x16] = local_7c" (subscript_expression "q[0x16]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x17] = local_84;" (assignment_expression "q[0x17] = local_84" (subscript_expression "q[0x17]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          q[0x13] = uVar10;\n          q[0x17] = SUB81(dVar2,0);\n          q[0x10] = local_84;\n          q[0x11] = local_7c;\n          q[0x12] = uVar12;\n          q[0x14] = local_74;\n          q[0x15] = local_6c;\n          q[0x16] = local_8c;\n        }" else (compound_statement "{\n          q[0x13] = uVar10;\n          q[0x17] = SUB81(dVar2,0);\n          q[0x10] = local_84;\n          q[0x11] = local_7c;\n          q[0x12] = uVar12;\n          q[0x14] = local_74;\n          q[0x15] = local_6c;\n          q[0x16] = local_8c;\n        }" { (expression_statement "q[0x13] = uVar10;" (assignment_expression "q[0x13] = uVar10" (subscript_expression "q[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x17] = SUB81(dVar2,0);" (assignment_expression "q[0x17] = SUB81(dVar2,0)" (subscript_expression "q[0x17]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "q[0x10] = local_84;" (assignment_expression "q[0x10] = local_84" (subscript_expression "q[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x11] = local_7c;" (assignment_expression "q[0x11] = local_7c" (subscript_expression "q[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x12] = uVar12;" (assignment_expression "q[0x12] = uVar12" (subscript_expression "q[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x14] = local_74;" (assignment_expression "q[0x14] = local_74" (subscript_expression "q[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x15] = local_6c;" (assignment_expression "q[0x15] = local_6c" (subscript_expression "q[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x16] = local_8c;" (assignment_expression "q[0x16] = local_8c" (subscript_expression "q[0x16]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (image->channel_map[3].traits == UndefinedPixelTrait) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = p[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          dVar2 = 0.0;\n        }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar2 = p[image->channel_map[3].offset];\n        }" else (compound_statement "{\n          dVar2 = p[image->channel_map[3].offset];\n        }" { (expression_statement "dVar2 = p[image->channel_map[3].offset];" (assignment_expression "dVar2 = p[image->channel_map[3].offset]" identifier = (subscript_expression "p[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 "dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;" (assignment_expression "dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum" identifier = (binary_expression "dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum" (binary_expression "dVar2 * (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)) + (field_expression "quantum_info->minimum" identifier -> field_identifier))) ;) (expression_statement "uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);" (assignment_expression "uVar10 = (uchar)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);" (assignment_expression "uVar12 = (uchar)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uchar)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (uchar)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (uchar)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (uchar)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (uchar)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (uchar)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (uchar)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (uchar)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (uchar)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (uchar)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n          q[0x1c] = uVar10;\n          q[0x1d] = uVar12;\n          q[0x18] = SUB81(dVar2,0);\n          q[0x19] = local_8c;\n          q[0x1e] = local_7c;\n          q[0x1a] = local_6c;\n          q[0x1b] = local_74;\n          q[0x1f] = local_84;\n        }\n        else {\n          q[0x1b] = uVar10;\n          q[0x1f] = SUB81(dVar2,0);\n          q[0x1c] = local_74;\n          q[0x18] = local_84;\n          q[0x1d] = local_6c;\n          q[0x19] = local_7c;\n          q[0x1a] = uVar12;\n          q[0x1e] = local_8c;\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          q[0x1c] = uVar10;\n          q[0x1d] = uVar12;\n          q[0x18] = SUB81(dVar2,0);\n          q[0x19] = local_8c;\n          q[0x1e] = local_7c;\n          q[0x1a] = local_6c;\n          q[0x1b] = local_74;\n          q[0x1f] = local_84;\n        }" { (expression_statement "q[0x1c] = uVar10;" (assignment_expression "q[0x1c] = uVar10" (subscript_expression "q[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x1d] = uVar12;" (assignment_expression "q[0x1d] = uVar12" (subscript_expression "q[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x18] = SUB81(dVar2,0);" (assignment_expression "q[0x18] = SUB81(dVar2,0)" (subscript_expression "q[0x18]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "q[0x19] = local_8c;" (assignment_expression "q[0x19] = local_8c" (subscript_expression "q[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x1e] = local_7c;" (assignment_expression "q[0x1e] = local_7c" (subscript_expression "q[0x1e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x1a] = local_6c;" (assignment_expression "q[0x1a] = local_6c" (subscript_expression "q[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x1b] = local_74;" (assignment_expression "q[0x1b] = local_74" (subscript_expression "q[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x1f] = local_84;" (assignment_expression "q[0x1f] = local_84" (subscript_expression "q[0x1f]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          q[0x1b] = uVar10;\n          q[0x1f] = SUB81(dVar2,0);\n          q[0x1c] = local_74;\n          q[0x18] = local_84;\n          q[0x1d] = local_6c;\n          q[0x19] = local_7c;\n          q[0x1a] = uVar12;\n          q[0x1e] = local_8c;\n        }" else (compound_statement "{\n          q[0x1b] = uVar10;\n          q[0x1f] = SUB81(dVar2,0);\n          q[0x1c] = local_74;\n          q[0x18] = local_84;\n          q[0x1d] = local_6c;\n          q[0x19] = local_7c;\n          q[0x1a] = uVar12;\n          q[0x1e] = local_8c;\n        }" { (expression_statement "q[0x1b] = uVar10;" (assignment_expression "q[0x1b] = uVar10" (subscript_expression "q[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x1f] = SUB81(dVar2,0);" (assignment_expression "q[0x1f] = SUB81(dVar2,0)" (subscript_expression "q[0x1f]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "q[0x1c] = local_74;" (assignment_expression "q[0x1c] = local_74" (subscript_expression "q[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x18] = local_84;" (assignment_expression "q[0x18] = local_84" (subscript_expression "q[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x1d] = local_6c;" (assignment_expression "q[0x1d] = local_6c" (subscript_expression "q[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x19] = local_7c;" (assignment_expression "q[0x19] = local_7c" (subscript_expression "q[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x1a] = uVar12;" (assignment_expression "q[0x1a] = uVar12" (subscript_expression "q[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x1e] = local_8c;" (assignment_expression "q[0x1e] = local_8c" (subscript_expression "q[0x1e]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset];\n        }\n        else {\n          dVar2 = 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          dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset];\n        }" { (expression_statement "dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset];" (assignment_expression "dVar2 = (double)DAT_0029f710 - p[image->channel_map[4].offset]" identifier = (binary_expression "(double)DAT_0029f710 - p[image->channel_map[4].offset]" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) - (subscript_expression "p[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          dVar2 = 0.0;\n        }" else (compound_statement "{\n          dVar2 = 0.0;\n        }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum;" (assignment_expression "dVar2 = dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum" identifier = (binary_expression "dVar2 * (quantum_info->state).inverse_scale + quantum_info->minimum" (binary_expression "dVar2 * (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)) + (field_expression "quantum_info->minimum" identifier -> field_identifier))) ;) (expression_statement "uVar10 = (uchar)((ulonglong)dVar2 >> 0x20);" (assignment_expression "uVar10 = (uchar)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar12 = (uchar)((ulonglong)dVar2 >> 0x28);" (assignment_expression "uVar12 = (uchar)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (uchar)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (uchar)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (uchar)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (uchar)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (uchar)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (uchar)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (uchar)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (uchar)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (uchar)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (uchar)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(uchar)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n          q[0x20] = SUB81(dVar2,0);\n          q[0x24] = uVar10;\n          q[0x21] = local_8c;\n          q[0x22] = local_6c;\n          q[0x23] = local_74;\n          q[0x25] = uVar12;\n          q[0x26] = local_7c;\n          q[0x27] = local_84;\n        }\n        else {\n          q[0x23] = uVar10;\n          q[0x27] = SUB81(dVar2,0);\n          q[0x20] = local_84;\n          q[0x21] = local_7c;\n          q[0x22] = uVar12;\n          q[0x24] = local_74;\n          q[0x25] = local_6c;\n          q[0x26] = local_8c;\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          q[0x20] = SUB81(dVar2,0);\n          q[0x24] = uVar10;\n          q[0x21] = local_8c;\n          q[0x22] = local_6c;\n          q[0x23] = local_74;\n          q[0x25] = uVar12;\n          q[0x26] = local_7c;\n          q[0x27] = local_84;\n        }" { (expression_statement "q[0x20] = SUB81(dVar2,0);" (assignment_expression "q[0x20] = SUB81(dVar2,0)" (subscript_expression "q[0x20]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "q[0x24] = uVar10;" (assignment_expression "q[0x24] = uVar10" (subscript_expression "q[0x24]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x21] = local_8c;" (assignment_expression "q[0x21] = local_8c" (subscript_expression "q[0x21]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x22] = local_6c;" (assignment_expression "q[0x22] = local_6c" (subscript_expression "q[0x22]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x23] = local_74;" (assignment_expression "q[0x23] = local_74" (subscript_expression "q[0x23]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x25] = uVar12;" (assignment_expression "q[0x25] = uVar12" (subscript_expression "q[0x25]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x26] = local_7c;" (assignment_expression "q[0x26] = local_7c" (subscript_expression "q[0x26]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x27] = local_84;" (assignment_expression "q[0x27] = local_84" (subscript_expression "q[0x27]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          q[0x23] = uVar10;\n          q[0x27] = SUB81(dVar2,0);\n          q[0x20] = local_84;\n          q[0x21] = local_7c;\n          q[0x22] = uVar12;\n          q[0x24] = local_74;\n          q[0x25] = local_6c;\n          q[0x26] = local_8c;\n        }" else (compound_statement "{\n          q[0x23] = uVar10;\n          q[0x27] = SUB81(dVar2,0);\n          q[0x20] = local_84;\n          q[0x21] = local_7c;\n          q[0x22] = uVar12;\n          q[0x24] = local_74;\n          q[0x25] = local_6c;\n          q[0x26] = local_8c;\n        }" { (expression_statement "q[0x23] = uVar10;" (assignment_expression "q[0x23] = uVar10" (subscript_expression "q[0x23]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x27] = SUB81(dVar2,0);" (assignment_expression "q[0x27] = SUB81(dVar2,0)" (subscript_expression "q[0x27]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "q[0x20] = local_84;" (assignment_expression "q[0x20] = local_84" (subscript_expression "q[0x20]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x21] = local_7c;" (assignment_expression "q[0x21] = local_7c" (subscript_expression "q[0x21]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x22] = uVar12;" (assignment_expression "q[0x22] = uVar12" (subscript_expression "q[0x22]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x24] = local_74;" (assignment_expression "q[0x24] = local_74" (subscript_expression "q[0x24]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x25] = local_6c;" (assignment_expression "q[0x25] = local_6c" (subscript_expression "q[0x25]" identifier [ number_literal ]) = identifier) ;) (expression_statement "q[0x26] = local_8c;" (assignment_expression "q[0x26] = local_8c" (subscript_expression "q[0x26]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "q = q + quantum_info->pad + 0x28;" (assignment_expression "q = q + quantum_info->pad + 0x28" identifier = (binary_expression "q + quantum_info->pad + 0x28" (binary_expression "q + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) (expression_statement "p = p + image->number_channels;" (assignment_expression "p = p + image->number_channels" identifier = (binary_expression "p + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(local_64 != (int)number_pixels)" ( (binary_expression "local_64 != (int)number_pixels" identifier != (cast_expression "(int)number_pixels" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (return_statement "return;" return ;) })) }))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (uVar17 < 0x41) {\n    uVar8 = uVar17;\n  }" if (parenthesized_expression "(uVar17 < 0x41)" ( (binary_expression "uVar17 < 0x41" identifier < number_literal) )) (compound_statement "{\n    uVar8 = uVar17;\n  }" { (expression_statement "uVar8 = uVar17;" (assignment_expression "uVar8 = uVar17" identifier = identifier) ;) })) (expression_statement "bVar9 = (byte)(uVar8 - 1);" (assignment_expression "bVar9 = (byte)(uVar8 - 1)" identifier = (call_expression "(byte)(uVar8 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar8 - 1)" ( (binary_expression "uVar8 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar14 = bVar9 & 0x1f;" (assignment_expression "bVar14 = bVar9 & 0x1f" identifier = (binary_expression "bVar9 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar6 = 2 << (bVar9 & 0x1f);" (assignment_expression "uVar6 = 2 << (bVar9 & 0x1f)" identifier = (binary_expression "2 << (bVar9 & 0x1f)" number_literal << (parenthesized_expression "(bVar9 & 0x1f)" ( (binary_expression "bVar9 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar7 = uVar6;" (assignment_expression "uVar7 = uVar6" identifier = identifier) ;) (expression_statement "uVar19 = 0 << bVar14 | 2U >> 0x20 - bVar14;" (assignment_expression "uVar19 = 0 << bVar14 | 2U >> 0x20 - bVar14" identifier = (binary_expression "0 << bVar14 | 2U >> 0x20 - bVar14" (binary_expression "0 << bVar14" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar14" number_literal >> (binary_expression "0x20 - bVar14" number_literal - identifier)))) ;) (if_statement "if ((uVar8 - 1 & 0x20) != 0) {\n    uVar7 = 0;\n    uVar19 = uVar6;\n  }" if (parenthesized_expression "((uVar8 - 1 & 0x20) != 0)" ( (binary_expression "(uVar8 - 1 & 0x20) != 0" (parenthesized_expression "(uVar8 - 1 & 0x20)" ( (binary_expression "uVar8 - 1 & 0x20" (binary_expression "uVar8 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar7 = 0;\n    uVar19 = uVar6;\n  }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = uVar6;" (assignment_expression "uVar19 = uVar6" identifier = identifier) ;) })) (expression_statement "local_4c = uVar7 - 1;" (assignment_expression "local_4c = uVar7 - 1" identifier = (binary_expression "uVar7 - 1" identifier - number_literal)) ;) (expression_statement "iStack_48 = (uVar19 - 1) + (uint)(uVar7 != 0);" (assignment_expression "iStack_48 = (uVar19 - 1) + (uint)(uVar7 != 0)" identifier = (binary_expression "(uVar19 - 1) + (uint)(uVar7 != 0)" (parenthesized_expression "(uVar19 - 1)" ( (binary_expression "uVar19 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar7 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) ))))) ;) (labeled_statement "LAB_0013be09:\n  if ((int)number_pixels < 1) {\n    return;\n  }" statement_identifier : (if_statement "if ((int)number_pixels < 1) {\n    return;\n  }" if (parenthesized_expression "((int)number_pixels < 1)" ( (binary_expression "(int)number_pixels < 1" (cast_expression "(int)number_pixels" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (do_statement "do {\n    local_5c = 0;\n    pPVar16 = image->channel_map;\n    if (0.0 < p[pPVar16->offset]) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * p[pPVar16->offset]) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar8 = (quantum_info->state).bits;\n    if (uVar8 == 0) {\n      (quantum_info->state).bits = 8;\n      uVar8 = 8;\n    }\n    if ((int)uVar17 < 1) {\n      dVar2 = p[pPVar16[1].offset];\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013bfd2;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013bfd2:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[1].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      dVar2 = p[pPVar16[2].offset];\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c18c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c18c:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[2].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      local_5c = 0;\n      if (pPVar16[3].traits != UndefinedPixelTrait) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c33c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c33c:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[3].traits != UndefinedPixelTrait) {\nLAB_0013c36e:\n        if (p[pPVar16[3].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      local_5c = 0;\n      uVar19 = uVar17;\n      if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c4f4;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c4f4:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[4].traits == BlendPixelTrait) {\nLAB_0013ccd8:\n        if (DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar19 = uVar17;\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }\n    while (0 < (int)uVar19) {\n      uVar8 = (quantum_info->state).bits;\n      uVar7 = uVar8;\n      if (uVar17 <= uVar8) {\n        uVar7 = uVar17;\n      }\n      uVar19 = uVar17 - uVar7;\n      uVar17 = 0;\n      if (-1 < (int)uVar19) {\n        uVar17 = uVar19;\n      }\n      if (uVar8 == 8) {\n        *q = 0;\n      }\n      uVar8 = uVar8 - uVar7;\n      (quantum_info->state).bits = uVar8;\n      bVar14 = (byte)uVar17 & 0x1f;\n      uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n      if ((uVar17 & 0x20) != 0) {\n        uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n      }\n      bVar14 = (byte)((~(-1 << ((byte)uVar7 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n      if ((uVar8 & 0x20) != 0) {\n        bVar14 = 0;\n      }\n      *q = *q | bVar14;\n      if (uVar8 == 0) {\n        q = q + 1;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    p = p + image->number_channels;\n    q = q + quantum_info->pad;\n    if (local_40 == (int)number_pixels) {\n      return;\n    }\n    uVar17 = quantum_info->depth;\n  } while( true );" do (compound_statement "{\n    local_5c = 0;\n    pPVar16 = image->channel_map;\n    if (0.0 < p[pPVar16->offset]) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * p[pPVar16->offset]) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar8 = (quantum_info->state).bits;\n    if (uVar8 == 0) {\n      (quantum_info->state).bits = 8;\n      uVar8 = 8;\n    }\n    if ((int)uVar17 < 1) {\n      dVar2 = p[pPVar16[1].offset];\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013bfd2;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013bfd2:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[1].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      dVar2 = p[pPVar16[2].offset];\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c18c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c18c:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[2].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      local_5c = 0;\n      if (pPVar16[3].traits != UndefinedPixelTrait) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c33c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c33c:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[3].traits != UndefinedPixelTrait) {\nLAB_0013c36e:\n        if (p[pPVar16[3].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }\n    if ((int)uVar17 < 1) {\n      local_5c = 0;\n      uVar19 = uVar17;\n      if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c4f4;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c4f4:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[4].traits == BlendPixelTrait) {\nLAB_0013ccd8:\n        if (DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar19 = uVar17;\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }\n    while (0 < (int)uVar19) {\n      uVar8 = (quantum_info->state).bits;\n      uVar7 = uVar8;\n      if (uVar17 <= uVar8) {\n        uVar7 = uVar17;\n      }\n      uVar19 = uVar17 - uVar7;\n      uVar17 = 0;\n      if (-1 < (int)uVar19) {\n        uVar17 = uVar19;\n      }\n      if (uVar8 == 8) {\n        *q = 0;\n      }\n      uVar8 = uVar8 - uVar7;\n      (quantum_info->state).bits = uVar8;\n      bVar14 = (byte)uVar17 & 0x1f;\n      uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n      if ((uVar17 & 0x20) != 0) {\n        uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n      }\n      bVar14 = (byte)((~(-1 << ((byte)uVar7 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n      if ((uVar8 & 0x20) != 0) {\n        bVar14 = 0;\n      }\n      *q = *q | bVar14;\n      if (uVar8 == 0) {\n        q = q + 1;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    p = p + image->number_channels;\n    q = q + quantum_info->pad;\n    if (local_40 == (int)number_pixels) {\n      return;\n    }\n    uVar17 = quantum_info->depth;\n  }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "pPVar16 = image->channel_map;" (assignment_expression "pPVar16 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (if_statement "if (0.0 < p[pPVar16->offset]) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * p[pPVar16->offset]) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }" if (parenthesized_expression "(0.0 < p[pPVar16->offset])" ( (binary_expression "0.0 < p[pPVar16->offset]" number_literal < (subscript_expression "p[pPVar16->offset]" identifier [ (field_expression "pPVar16->offset" identifier -> field_identifier) ])) )) (compound_statement "{\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * p[pPVar16->offset]) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 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_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "dVar2 = ((double)fVar1 * p[pPVar16->offset]) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * p[pPVar16->offset]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * p[pPVar16->offset]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * p[pPVar16->offset])" ( (binary_expression "(double)fVar1 * p[pPVar16->offset]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "p[pPVar16->offset]" identifier [ (field_expression "pPVar16->offset" identifier -> field_identifier) ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }" if (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" ( (binary_expression "dVar2 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }" { (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" identifier = (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" ( (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" identifier (argument_list "(dVar2 - (double)DAT_0029f134)" ( (binary_expression "dVar2 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (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) ))) + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n          local_5c = (longlong)ROUND(dVar2);\n        }" else (compound_statement "{\n          local_5c = (longlong)ROUND(dVar2);\n        }" { (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" identifier = (cast_expression "(longlong)ROUND(dVar2)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar8 = (quantum_info->state).bits;" (assignment_expression "uVar8 = (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 (uVar8 == 0) {\n      (quantum_info->state).bits = 8;\n      uVar8 = 8;\n    }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      (quantum_info->state).bits = 8;\n      uVar8 = 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 "uVar8 = 8;" (assignment_expression "uVar8 = 8" identifier = number_literal) ;) })) (if_statement "if ((int)uVar17 < 1) {\n      dVar2 = p[pPVar16[1].offset];\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013bfd2;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013bfd2:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[1].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }" if (parenthesized_expression "((int)uVar17 < 1)" ( (binary_expression "(int)uVar17 < 1" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      dVar2 = p[pPVar16[1].offset];\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }" { (expression_statement "dVar2 = p[pPVar16[1].offset];" (assignment_expression "dVar2 = p[pPVar16[1].offset]" identifier = (subscript_expression "p[pPVar16[1].offset]" identifier [ (field_expression "pPVar16[1].offset" (subscript_expression "pPVar16[1]" identifier [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (!NAN(dVar2)) goto LAB_0013bffe;" if (parenthesized_expression "(!NAN(dVar2))" ( (unary_expression "!NAN(dVar2)" ! (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))) )) (goto_statement "goto LAB_0013bffe;" goto statement_identifier ;)) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013bfd2;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013bfd2:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[1].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013bfd2;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013bfd2:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[1].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013bfd2;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);" do (compound_statement "{\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013bfd2;\n        }\n        uVar8 = (quantum_info->state).bits;\n      }" { (while_statement "while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013bfd2;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013bfd2;\n        }" { (expression_statement "uVar19 = uVar8;" (assignment_expression "uVar19 = uVar8" identifier = identifier) ;) (if_statement "if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }" if (parenthesized_expression "(uVar17 <= uVar8)" ( (binary_expression "uVar17 <= uVar8" identifier <= identifier) )) (compound_statement "{\n            uVar19 = uVar17;\n          }" { (expression_statement "uVar19 = uVar17;" (assignment_expression "uVar19 = uVar17" identifier = identifier) ;) })) (expression_statement "uVar7 = uVar17 - uVar19;" (assignment_expression "uVar7 = uVar17 - uVar19" identifier = (binary_expression "uVar17 - uVar19" identifier - identifier)) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }" if (parenthesized_expression "(-1 < (int)uVar7)" ( (binary_expression "-1 < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar17 = uVar7;\n          }" { (expression_statement "uVar17 = uVar7;" (assignment_expression "uVar17 = uVar7" identifier = identifier) ;) })) (if_statement "if (uVar8 == 8) {\n            *q = '\0';\n          }" if (parenthesized_expression "(uVar8 == 8)" ( (binary_expression "uVar8 == 8" identifier == number_literal) )) (compound_statement "{\n            *q = '\0';\n          }" { (expression_statement "*q = '\0';" (assignment_expression "*q = '\0'" (pointer_expression "*q" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "uVar8 = uVar8 - uVar19;" (assignment_expression "uVar8 = uVar8 - uVar19" identifier = (binary_expression "uVar8 - uVar19" identifier - identifier)) ;) (expression_statement "bVar14 = (byte)uVar17 & 0x1f;" (assignment_expression "bVar14 = (byte)uVar17 & 0x1f" identifier = (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;" (assignment_expression "uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14" identifier = (binary_expression "(uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14" (binary_expression "(uint)local_5c >> bVar14" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar14" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar14" number_literal - identifier)))) ;) (if_statement "if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\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            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }" { (expression_statement "uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);" (assignment_expression "uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar17 & 0x1f)" (field_expression "local_5c._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "(quantum_info->state).bits = uVar8;" (assignment_expression "(quantum_info->state).bits = uVar8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));" (assignment_expression "bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar19 & 0x1f)) & uVar6)" ( (binary_expression "~(-1 << ((byte)uVar19 & 0x1f)) & uVar6" (unary_expression "~(-1 << ((byte)uVar19 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar19 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar19 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar19 & 0x1f)" ( (binary_expression "(byte)uVar19 & 0x1f" (cast_expression "(byte)uVar19" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }" if (parenthesized_expression "((uVar8 & 0x20) != 0)" ( (binary_expression "(uVar8 & 0x20) != 0" (parenthesized_expression "(uVar8 & 0x20)" ( (binary_expression "uVar8 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar14 = 0;\n          }" { (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) })) (expression_statement "*q = *q | bVar14;" (assignment_expression "*q = *q | bVar14" (pointer_expression "*q" * identifier) = (binary_expression "*q | bVar14" (pointer_expression "*q" * identifier) | identifier)) ;) (if_statement "if (uVar8 != 0) break;" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "q = q + 1;" (assignment_expression "q = q + 1" identifier = (binary_expression "q + 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 "uVar8 = 8;" (assignment_expression "uVar8 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar7 < 1) goto LAB_0013bfd2;" if (parenthesized_expression "((int)uVar7 < 1)" ( (binary_expression "(int)uVar7 < 1" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013bfd2;" goto statement_identifier ;)) })) (expression_statement "uVar8 = (quantum_info->state).bits;" (assignment_expression "uVar8 = (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)uVar7)" ( (binary_expression "0 < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0013bfd2:\n      pPVar16 = image->channel_map;" statement_identifier : (expression_statement "pPVar16 = image->channel_map;" (assignment_expression "pPVar16 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;)) (expression_statement "uVar17 = quantum_info->depth;" (assignment_expression "uVar17 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (expression_statement "dVar2 = p[pPVar16[1].offset];" (assignment_expression "dVar2 = p[pPVar16[1].offset]" identifier = (subscript_expression "p[pPVar16[1].offset]" identifier [ (field_expression "pPVar16[1].offset" (subscript_expression "pPVar16[1]" identifier [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(NAN(dVar2))" ( (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))) )) (compound_statement "{\n        local_5c = 0;\n      }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" else (compound_statement "{\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013bffe:\n        local_5c = 0;" statement_identifier : (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 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_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar2) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar2)" ( (binary_expression "(double)fVar1 * dVar2" (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 (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" ( (binary_expression "dVar2 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" { (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" identifier = (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" ( (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" identifier (argument_list "(dVar2 - (double)DAT_0029f134)" ( (binary_expression "dVar2 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (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) ))) + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" else (compound_statement "{\n              local_5c = (longlong)ROUND(dVar2);\n            }" { (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" identifier = (cast_expression "(longlong)ROUND(dVar2)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        (quantum_info->state).bits = 8;\n        uVar8 = 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 "uVar8 = 8;" (assignment_expression "uVar8 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar17 < 1) {\n      dVar2 = p[pPVar16[2].offset];\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c18c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c18c:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[2].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }" if (parenthesized_expression "((int)uVar17 < 1)" ( (binary_expression "(int)uVar17 < 1" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      dVar2 = p[pPVar16[2].offset];\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }" { (expression_statement "dVar2 = p[pPVar16[2].offset];" (assignment_expression "dVar2 = p[pPVar16[2].offset]" identifier = (subscript_expression "p[pPVar16[2].offset]" identifier [ (field_expression "pPVar16[2].offset" (subscript_expression "pPVar16[2]" identifier [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (!NAN(dVar2)) goto LAB_0013c1b8;" if (parenthesized_expression "(!NAN(dVar2))" ( (unary_expression "!NAN(dVar2)" ! (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))) )) (goto_statement "goto LAB_0013c1b8;" goto statement_identifier ;)) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c18c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c18c:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[2].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c18c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c18c:\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      dVar2 = p[pPVar16[2].offset];\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c18c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);" do (compound_statement "{\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c18c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      }" { (while_statement "while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c18c;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c18c;\n        }" { (expression_statement "uVar19 = uVar8;" (assignment_expression "uVar19 = uVar8" identifier = identifier) ;) (if_statement "if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }" if (parenthesized_expression "(uVar17 <= uVar8)" ( (binary_expression "uVar17 <= uVar8" identifier <= identifier) )) (compound_statement "{\n            uVar19 = uVar17;\n          }" { (expression_statement "uVar19 = uVar17;" (assignment_expression "uVar19 = uVar17" identifier = identifier) ;) })) (expression_statement "uVar7 = uVar17 - uVar19;" (assignment_expression "uVar7 = uVar17 - uVar19" identifier = (binary_expression "uVar17 - uVar19" identifier - identifier)) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }" if (parenthesized_expression "(-1 < (int)uVar7)" ( (binary_expression "-1 < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar17 = uVar7;\n          }" { (expression_statement "uVar17 = uVar7;" (assignment_expression "uVar17 = uVar7" identifier = identifier) ;) })) (if_statement "if (uVar8 == 8) {\n            *q = '\0';\n          }" if (parenthesized_expression "(uVar8 == 8)" ( (binary_expression "uVar8 == 8" identifier == number_literal) )) (compound_statement "{\n            *q = '\0';\n          }" { (expression_statement "*q = '\0';" (assignment_expression "*q = '\0'" (pointer_expression "*q" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "uVar8 = uVar8 - uVar19;" (assignment_expression "uVar8 = uVar8 - uVar19" identifier = (binary_expression "uVar8 - uVar19" identifier - identifier)) ;) (expression_statement "bVar14 = (byte)uVar17 & 0x1f;" (assignment_expression "bVar14 = (byte)uVar17 & 0x1f" identifier = (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;" (assignment_expression "uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14" identifier = (binary_expression "(uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14" (binary_expression "(uint)local_5c >> bVar14" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar14" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar14" number_literal - identifier)))) ;) (if_statement "if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\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            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }" { (expression_statement "uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);" (assignment_expression "uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar17 & 0x1f)" (field_expression "local_5c._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "(quantum_info->state).bits = uVar8;" (assignment_expression "(quantum_info->state).bits = uVar8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));" (assignment_expression "bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar19 & 0x1f)) & uVar6)" ( (binary_expression "~(-1 << ((byte)uVar19 & 0x1f)) & uVar6" (unary_expression "~(-1 << ((byte)uVar19 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar19 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar19 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar19 & 0x1f)" ( (binary_expression "(byte)uVar19 & 0x1f" (cast_expression "(byte)uVar19" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }" if (parenthesized_expression "((uVar8 & 0x20) != 0)" ( (binary_expression "(uVar8 & 0x20) != 0" (parenthesized_expression "(uVar8 & 0x20)" ( (binary_expression "uVar8 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar14 = 0;\n          }" { (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) })) (expression_statement "*q = *q | bVar14;" (assignment_expression "*q = *q | bVar14" (pointer_expression "*q" * identifier) = (binary_expression "*q | bVar14" (pointer_expression "*q" * identifier) | identifier)) ;) (if_statement "if (uVar8 != 0) break;" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "q = q + 1;" (assignment_expression "q = q + 1" identifier = (binary_expression "q + 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 "uVar8 = 8;" (assignment_expression "uVar8 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar7 < 1) goto LAB_0013c18c;" if (parenthesized_expression "((int)uVar7 < 1)" ( (binary_expression "(int)uVar7 < 1" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013c18c;" goto statement_identifier ;)) })) (expression_statement "uVar8 = (quantum_info->state).bits;" (assignment_expression "uVar8 = (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)uVar7)" ( (binary_expression "0 < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0013c18c:\n      pPVar16 = image->channel_map;" statement_identifier : (expression_statement "pPVar16 = image->channel_map;" (assignment_expression "pPVar16 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;)) (expression_statement "uVar17 = quantum_info->depth;" (assignment_expression "uVar17 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (expression_statement "dVar2 = p[pPVar16[2].offset];" (assignment_expression "dVar2 = p[pPVar16[2].offset]" identifier = (subscript_expression "p[pPVar16[2].offset]" identifier [ (field_expression "pPVar16[2].offset" (subscript_expression "pPVar16[2]" identifier [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(NAN(dVar2))" ( (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))) )) (compound_statement "{\n        local_5c = 0;\n      }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" else (compound_statement "{\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013c1b8:\n        local_5c = 0;" statement_identifier : (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 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_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar2) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar2)" ( (binary_expression "(double)fVar1 * dVar2" (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 (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" ( (binary_expression "dVar2 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" { (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" identifier = (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" ( (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" identifier (argument_list "(dVar2 - (double)DAT_0029f134)" ( (binary_expression "dVar2 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (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) ))) + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" else (compound_statement "{\n              local_5c = (longlong)ROUND(dVar2);\n            }" { (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" identifier = (cast_expression "(longlong)ROUND(dVar2)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        (quantum_info->state).bits = 8;\n        uVar8 = 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 "uVar8 = 8;" (assignment_expression "uVar8 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar17 < 1) {\n      local_5c = 0;\n      if (pPVar16[3].traits != UndefinedPixelTrait) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c33c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c33c:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[3].traits != UndefinedPixelTrait) {\nLAB_0013c36e:\n        if (p[pPVar16[3].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }" if (parenthesized_expression "((int)uVar17 < 1)" ( (binary_expression "(int)uVar17 < 1" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      local_5c = 0;\n      if (pPVar16[3].traits != UndefinedPixelTrait) goto LAB_0013c36e;\n    }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (if_statement "if (pPVar16[3].traits != UndefinedPixelTrait) goto LAB_0013c36e;" if (parenthesized_expression "(pPVar16[3].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar16[3].traits != UndefinedPixelTrait" (field_expression "pPVar16[3].traits" (subscript_expression "pPVar16[3]" identifier [ number_literal ]) . field_identifier) != identifier) )) (goto_statement "goto LAB_0013c36e;" goto statement_identifier ;)) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c33c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c33c:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[3].traits != UndefinedPixelTrait) {\nLAB_0013c36e:\n        if (p[pPVar16[3].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c33c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c33c:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[3].traits != UndefinedPixelTrait) {\nLAB_0013c36e:\n        if (p[pPVar16[3].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c33c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);" do (compound_statement "{\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c33c;\n        }\n        uVar8 = (quantum_info->state).bits;\n      }" { (while_statement "while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c33c;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c33c;\n        }" { (expression_statement "uVar19 = uVar8;" (assignment_expression "uVar19 = uVar8" identifier = identifier) ;) (if_statement "if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }" if (parenthesized_expression "(uVar17 <= uVar8)" ( (binary_expression "uVar17 <= uVar8" identifier <= identifier) )) (compound_statement "{\n            uVar19 = uVar17;\n          }" { (expression_statement "uVar19 = uVar17;" (assignment_expression "uVar19 = uVar17" identifier = identifier) ;) })) (expression_statement "uVar7 = uVar17 - uVar19;" (assignment_expression "uVar7 = uVar17 - uVar19" identifier = (binary_expression "uVar17 - uVar19" identifier - identifier)) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }" if (parenthesized_expression "(-1 < (int)uVar7)" ( (binary_expression "-1 < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar17 = uVar7;\n          }" { (expression_statement "uVar17 = uVar7;" (assignment_expression "uVar17 = uVar7" identifier = identifier) ;) })) (if_statement "if (uVar8 == 8) {\n            *q = '\0';\n          }" if (parenthesized_expression "(uVar8 == 8)" ( (binary_expression "uVar8 == 8" identifier == number_literal) )) (compound_statement "{\n            *q = '\0';\n          }" { (expression_statement "*q = '\0';" (assignment_expression "*q = '\0'" (pointer_expression "*q" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "uVar8 = uVar8 - uVar19;" (assignment_expression "uVar8 = uVar8 - uVar19" identifier = (binary_expression "uVar8 - uVar19" identifier - identifier)) ;) (expression_statement "bVar14 = (byte)uVar17 & 0x1f;" (assignment_expression "bVar14 = (byte)uVar17 & 0x1f" identifier = (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;" (assignment_expression "uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14" identifier = (binary_expression "(uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14" (binary_expression "(uint)local_5c >> bVar14" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar14" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar14" number_literal - identifier)))) ;) (if_statement "if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\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            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }" { (expression_statement "uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);" (assignment_expression "uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar17 & 0x1f)" (field_expression "local_5c._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "(quantum_info->state).bits = uVar8;" (assignment_expression "(quantum_info->state).bits = uVar8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));" (assignment_expression "bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar19 & 0x1f)) & uVar6)" ( (binary_expression "~(-1 << ((byte)uVar19 & 0x1f)) & uVar6" (unary_expression "~(-1 << ((byte)uVar19 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar19 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar19 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar19 & 0x1f)" ( (binary_expression "(byte)uVar19 & 0x1f" (cast_expression "(byte)uVar19" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }" if (parenthesized_expression "((uVar8 & 0x20) != 0)" ( (binary_expression "(uVar8 & 0x20) != 0" (parenthesized_expression "(uVar8 & 0x20)" ( (binary_expression "uVar8 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar14 = 0;\n          }" { (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) })) (expression_statement "*q = *q | bVar14;" (assignment_expression "*q = *q | bVar14" (pointer_expression "*q" * identifier) = (binary_expression "*q | bVar14" (pointer_expression "*q" * identifier) | identifier)) ;) (if_statement "if (uVar8 != 0) break;" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "q = q + 1;" (assignment_expression "q = q + 1" identifier = (binary_expression "q + 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 "uVar8 = 8;" (assignment_expression "uVar8 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar7 < 1) goto LAB_0013c33c;" if (parenthesized_expression "((int)uVar7 < 1)" ( (binary_expression "(int)uVar7 < 1" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013c33c;" goto statement_identifier ;)) })) (expression_statement "uVar8 = (quantum_info->state).bits;" (assignment_expression "uVar8 = (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)uVar7)" ( (binary_expression "0 < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0013c33c:\n      local_5c = 0;" statement_identifier : (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;)) (expression_statement "pPVar16 = image->channel_map;" (assignment_expression "pPVar16 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "uVar17 = quantum_info->depth;" (assignment_expression "uVar17 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (pPVar16[3].traits != UndefinedPixelTrait) {\nLAB_0013c36e:\n        if (p[pPVar16[3].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(pPVar16[3].traits != UndefinedPixelTrait)" ( (binary_expression "pPVar16[3].traits != UndefinedPixelTrait" (field_expression "pPVar16[3].traits" (subscript_expression "pPVar16[3]" identifier [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\nLAB_0013c36e:\n        if (p[pPVar16[3].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013c36e:\n        if (p[pPVar16[3].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" statement_identifier : (if_statement "if (p[pPVar16[3].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" if (parenthesized_expression "(p[pPVar16[3].offset] <= 0.0)" ( (binary_expression "p[pPVar16[3].offset] <= 0.0" (subscript_expression "p[pPVar16[3].offset]" identifier [ (field_expression "pPVar16[3].offset" (subscript_expression "pPVar16[3]" identifier [ number_literal ]) . field_identifier) ]) <= number_literal) )) (compound_statement "{\n          local_5c = 0;\n        }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" else (compound_statement "{\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 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_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * p[pPVar16[3].offset]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * p[pPVar16[3].offset])" ( (binary_expression "(double)fVar1 * p[pPVar16[3].offset]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "p[pPVar16[3].offset]" identifier [ (field_expression "pPVar16[3].offset" (subscript_expression "pPVar16[3]" identifier [ number_literal ]) . field_identifier) ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" ( (binary_expression "dVar2 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" { (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" identifier = (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" ( (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" identifier (argument_list "(dVar2 - (double)DAT_0029f134)" ( (binary_expression "dVar2 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (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) ))) + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" else (compound_statement "{\n              local_5c = (longlong)ROUND(dVar2);\n            }" { (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" identifier = (cast_expression "(longlong)ROUND(dVar2)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))))) ;) }))) })) })))) })) (if_statement "if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n        uVar8 = 8;\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        (quantum_info->state).bits = 8;\n        uVar8 = 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 "uVar8 = 8;" (assignment_expression "uVar8 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar17 < 1) {\n      local_5c = 0;\n      uVar19 = uVar17;\n      if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c4f4;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c4f4:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[4].traits == BlendPixelTrait) {\nLAB_0013ccd8:\n        if (DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar19 = uVar17;\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }" if (parenthesized_expression "((int)uVar17 < 1)" ( (binary_expression "(int)uVar17 < 1" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      local_5c = 0;\n      uVar19 = uVar17;\n      if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013ccd8;\n    }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "uVar19 = uVar17;" (assignment_expression "uVar19 = uVar17" identifier = identifier) ;) (if_statement "if (pPVar16[4].traits == BlendPixelTrait) goto LAB_0013ccd8;" if (parenthesized_expression "(pPVar16[4].traits == BlendPixelTrait)" ( (binary_expression "pPVar16[4].traits == BlendPixelTrait" (field_expression "pPVar16[4].traits" (subscript_expression "pPVar16[4]" identifier [ number_literal ]) . field_identifier) == identifier) )) (goto_statement "goto LAB_0013ccd8;" goto statement_identifier ;)) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c4f4;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c4f4:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[4].traits == BlendPixelTrait) {\nLAB_0013ccd8:\n        if (DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar19 = uVar17;\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c4f4;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);\nLAB_0013c4f4:\n      local_5c = 0;\n      pPVar16 = image->channel_map;\n      uVar17 = quantum_info->depth;\n      if (pPVar16[4].traits == BlendPixelTrait) {\nLAB_0013ccd8:\n        if (DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar19 = uVar17;\n      if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c4f4;\n        }\n        uVar8 = (quantum_info->state).bits;\n      } while (0 < (int)uVar7);" do (compound_statement "{\n        while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c4f4;\n        }\n        uVar8 = (quantum_info->state).bits;\n      }" { (while_statement "while( true ) {\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c4f4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar19 = uVar8;\n          if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }\n          uVar7 = uVar17 - uVar19;\n          uVar17 = 0;\n          if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }\n          if (uVar8 == 8) {\n            *q = '\0';\n          }\n          uVar8 = uVar8 - uVar19;\n          bVar14 = (byte)uVar17 & 0x1f;\n          uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n          if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }\n          (quantum_info->state).bits = uVar8;\n          bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n          if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }\n          *q = *q | bVar14;\n          if (uVar8 != 0) break;\n          q = q + 1;\n          (quantum_info->state).bits = 8;\n          uVar8 = 8;\n          if ((int)uVar7 < 1) goto LAB_0013c4f4;\n        }" { (expression_statement "uVar19 = uVar8;" (assignment_expression "uVar19 = uVar8" identifier = identifier) ;) (if_statement "if (uVar17 <= uVar8) {\n            uVar19 = uVar17;\n          }" if (parenthesized_expression "(uVar17 <= uVar8)" ( (binary_expression "uVar17 <= uVar8" identifier <= identifier) )) (compound_statement "{\n            uVar19 = uVar17;\n          }" { (expression_statement "uVar19 = uVar17;" (assignment_expression "uVar19 = uVar17" identifier = identifier) ;) })) (expression_statement "uVar7 = uVar17 - uVar19;" (assignment_expression "uVar7 = uVar17 - uVar19" identifier = (binary_expression "uVar17 - uVar19" identifier - identifier)) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar7) {\n            uVar17 = uVar7;\n          }" if (parenthesized_expression "(-1 < (int)uVar7)" ( (binary_expression "-1 < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar17 = uVar7;\n          }" { (expression_statement "uVar17 = uVar7;" (assignment_expression "uVar17 = uVar7" identifier = identifier) ;) })) (if_statement "if (uVar8 == 8) {\n            *q = '\0';\n          }" if (parenthesized_expression "(uVar8 == 8)" ( (binary_expression "uVar8 == 8" identifier == number_literal) )) (compound_statement "{\n            *q = '\0';\n          }" { (expression_statement "*q = '\0';" (assignment_expression "*q = '\0'" (pointer_expression "*q" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "uVar8 = uVar8 - uVar19;" (assignment_expression "uVar8 = uVar8 - uVar19" identifier = (binary_expression "uVar8 - uVar19" identifier - identifier)) ;) (expression_statement "bVar14 = (byte)uVar17 & 0x1f;" (assignment_expression "bVar14 = (byte)uVar17 & 0x1f" identifier = (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;" (assignment_expression "uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14" identifier = (binary_expression "(uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14" (binary_expression "(uint)local_5c >> bVar14" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar14" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar14" number_literal - identifier)))) ;) (if_statement "if ((uVar17 & 0x20) != 0) {\n            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\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            uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n          }" { (expression_statement "uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);" (assignment_expression "uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar17 & 0x1f)" (field_expression "local_5c._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "(quantum_info->state).bits = uVar8;" (assignment_expression "(quantum_info->state).bits = uVar8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));" (assignment_expression "bVar14 = (byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar19 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar19 & 0x1f)) & uVar6)" ( (binary_expression "~(-1 << ((byte)uVar19 & 0x1f)) & uVar6" (unary_expression "~(-1 << ((byte)uVar19 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar19 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar19 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar19 & 0x1f)" ( (binary_expression "(byte)uVar19 & 0x1f" (cast_expression "(byte)uVar19" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar8 & 0x20) != 0) {\n            bVar14 = 0;\n          }" if (parenthesized_expression "((uVar8 & 0x20) != 0)" ( (binary_expression "(uVar8 & 0x20) != 0" (parenthesized_expression "(uVar8 & 0x20)" ( (binary_expression "uVar8 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar14 = 0;\n          }" { (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) })) (expression_statement "*q = *q | bVar14;" (assignment_expression "*q = *q | bVar14" (pointer_expression "*q" * identifier) = (binary_expression "*q | bVar14" (pointer_expression "*q" * identifier) | identifier)) ;) (if_statement "if (uVar8 != 0) break;" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "q = q + 1;" (assignment_expression "q = q + 1" identifier = (binary_expression "q + 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 "uVar8 = 8;" (assignment_expression "uVar8 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar7 < 1) goto LAB_0013c4f4;" if (parenthesized_expression "((int)uVar7 < 1)" ( (binary_expression "(int)uVar7 < 1" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013c4f4;" goto statement_identifier ;)) })) (expression_statement "uVar8 = (quantum_info->state).bits;" (assignment_expression "uVar8 = (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)uVar7)" ( (binary_expression "0 < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0013c4f4:\n      local_5c = 0;" statement_identifier : (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;)) (expression_statement "pPVar16 = image->channel_map;" (assignment_expression "pPVar16 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "uVar17 = quantum_info->depth;" (assignment_expression "uVar17 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (pPVar16[4].traits == BlendPixelTrait) {\nLAB_0013ccd8:\n        if (DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(pPVar16[4].traits == BlendPixelTrait)" ( (binary_expression "pPVar16[4].traits == BlendPixelTrait" (field_expression "pPVar16[4].traits" (subscript_expression "pPVar16[4]" identifier [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\nLAB_0013ccd8:\n        if (DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013ccd8:\n        if (DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }" statement_identifier : (if_statement "if (DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }" if (parenthesized_expression "(DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0)" ( (binary_expression "DAT_0029f710 - (float)p[pPVar16[4].offset] <= 0.0" (binary_expression "DAT_0029f710 - (float)p[pPVar16[4].offset]" identifier - (cast_expression "(float)p[pPVar16[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "p[pPVar16[4].offset]" identifier [ (field_expression "pPVar16[4].offset" (subscript_expression "pPVar16[4]" identifier [ number_literal ]) . field_identifier) ]))) <= number_literal) )) (compound_statement "{\n          local_5c = 0;\n        }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }" else (compound_statement "{\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 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_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710;" (assignment_expression "fVar1 = (fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710" identifier = (binary_expression "(fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])) / DAT_0029f710" (parenthesized_expression "(fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset]))" ( (binary_expression "fVar1 * (DAT_0029f710 - (float)p[pPVar16[4].offset])" identifier * (parenthesized_expression "(DAT_0029f710 - (float)p[pPVar16[4].offset])" ( (binary_expression "DAT_0029f710 - (float)p[pPVar16[4].offset]" identifier - (cast_expression "(float)p[pPVar16[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "p[pPVar16[4].offset]" identifier [ (field_expression "pPVar16[4].offset" (subscript_expression "pPVar16[4]" identifier [ number_literal ]) . field_identifier) ]))) ))) )) / identifier)) ;) (if_statement "if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (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              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (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              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }" if (parenthesized_expression "(DAT_0029f134 <= fVar1)" ( (binary_expression "DAT_0029f134 <= fVar1" identifier <= identifier) )) (compound_statement "{\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }" { (expression_statement "local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134))" identifier = (call_expression "CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134))" identifier (argument_list "((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134))" ( (binary_expression "(int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000" (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) ))) + 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_5c = (longlong)ROUND(fVar1);\n            }" else (compound_statement "{\n              local_5c = (longlong)ROUND(fVar1);\n            }" { (expression_statement "local_5c = (longlong)ROUND(fVar1);" (assignment_expression "local_5c = (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 "uVar19 = uVar17;" (assignment_expression "uVar19 = uVar17" identifier = identifier) ;) (if_statement "if (uVar8 == 0) {\n        (quantum_info->state).bits = 8;\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 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)uVar19) {\n      uVar8 = (quantum_info->state).bits;\n      uVar7 = uVar8;\n      if (uVar17 <= uVar8) {\n        uVar7 = uVar17;\n      }\n      uVar19 = uVar17 - uVar7;\n      uVar17 = 0;\n      if (-1 < (int)uVar19) {\n        uVar17 = uVar19;\n      }\n      if (uVar8 == 8) {\n        *q = 0;\n      }\n      uVar8 = uVar8 - uVar7;\n      (quantum_info->state).bits = uVar8;\n      bVar14 = (byte)uVar17 & 0x1f;\n      uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n      if ((uVar17 & 0x20) != 0) {\n        uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n      }\n      bVar14 = (byte)((~(-1 << ((byte)uVar7 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n      if ((uVar8 & 0x20) != 0) {\n        bVar14 = 0;\n      }\n      *q = *q | bVar14;\n      if (uVar8 == 0) {\n        q = q + 1;\n        (quantum_info->state).bits = 8;\n      }\n    }" while (parenthesized_expression "(0 < (int)uVar19)" ( (binary_expression "0 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      uVar8 = (quantum_info->state).bits;\n      uVar7 = uVar8;\n      if (uVar17 <= uVar8) {\n        uVar7 = uVar17;\n      }\n      uVar19 = uVar17 - uVar7;\n      uVar17 = 0;\n      if (-1 < (int)uVar19) {\n        uVar17 = uVar19;\n      }\n      if (uVar8 == 8) {\n        *q = 0;\n      }\n      uVar8 = uVar8 - uVar7;\n      (quantum_info->state).bits = uVar8;\n      bVar14 = (byte)uVar17 & 0x1f;\n      uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;\n      if ((uVar17 & 0x20) != 0) {\n        uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n      }\n      bVar14 = (byte)((~(-1 << ((byte)uVar7 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));\n      if ((uVar8 & 0x20) != 0) {\n        bVar14 = 0;\n      }\n      *q = *q | bVar14;\n      if (uVar8 == 0) {\n        q = q + 1;\n        (quantum_info->state).bits = 8;\n      }\n    }" { (expression_statement "uVar8 = (quantum_info->state).bits;" (assignment_expression "uVar8 = (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 "uVar7 = uVar8;" (assignment_expression "uVar7 = uVar8" identifier = identifier) ;) (if_statement "if (uVar17 <= uVar8) {\n        uVar7 = uVar17;\n      }" if (parenthesized_expression "(uVar17 <= uVar8)" ( (binary_expression "uVar17 <= uVar8" identifier <= identifier) )) (compound_statement "{\n        uVar7 = uVar17;\n      }" { (expression_statement "uVar7 = uVar17;" (assignment_expression "uVar7 = uVar17" identifier = identifier) ;) })) (expression_statement "uVar19 = uVar17 - uVar7;" (assignment_expression "uVar19 = uVar17 - uVar7" identifier = (binary_expression "uVar17 - uVar7" identifier - identifier)) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar19) {\n        uVar17 = uVar19;\n      }" if (parenthesized_expression "(-1 < (int)uVar19)" ( (binary_expression "-1 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar17 = uVar19;\n      }" { (expression_statement "uVar17 = uVar19;" (assignment_expression "uVar17 = uVar19" identifier = identifier) ;) })) (if_statement "if (uVar8 == 8) {\n        *q = 0;\n      }" if (parenthesized_expression "(uVar8 == 8)" ( (binary_expression "uVar8 == 8" identifier == number_literal) )) (compound_statement "{\n        *q = 0;\n      }" { (expression_statement "*q = 0;" (assignment_expression "*q = 0" (pointer_expression "*q" * identifier) = number_literal) ;) })) (expression_statement "uVar8 = uVar8 - uVar7;" (assignment_expression "uVar8 = uVar8 - uVar7" identifier = (binary_expression "uVar8 - uVar7" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar8;" (assignment_expression "(quantum_info->state).bits = uVar8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar14 = (byte)uVar17 & 0x1f;" (assignment_expression "bVar14 = (byte)uVar17 & 0x1f" identifier = (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14;" (assignment_expression "uVar6 = (uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14" identifier = (binary_expression "(uint)local_5c >> bVar14 | local_5c._4_4_ << 0x20 - bVar14" (binary_expression "(uint)local_5c >> bVar14" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar14" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar14" number_literal - identifier)))) ;) (if_statement "if ((uVar17 & 0x20) != 0) {\n        uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\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        uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);\n      }" { (expression_statement "uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f);" (assignment_expression "uVar6 = local_5c._4_4_ >> ((byte)uVar17 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar17 & 0x1f)" (field_expression "local_5c._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar14 = (byte)((~(-1 << ((byte)uVar7 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f));" (assignment_expression "bVar14 = (byte)((~(-1 << ((byte)uVar7 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar7 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar7 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar7 & 0x1f)) & uVar6) << ((byte)uVar8 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar7 & 0x1f)) & uVar6)" ( (binary_expression "~(-1 << ((byte)uVar7 & 0x1f)) & uVar6" (unary_expression "~(-1 << ((byte)uVar7 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar7 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar7 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar7 & 0x1f)" ( (binary_expression "(byte)uVar7 & 0x1f" (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar8 & 0x20) != 0) {\n        bVar14 = 0;\n      }" if (parenthesized_expression "((uVar8 & 0x20) != 0)" ( (binary_expression "(uVar8 & 0x20) != 0" (parenthesized_expression "(uVar8 & 0x20)" ( (binary_expression "uVar8 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        bVar14 = 0;\n      }" { (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) })) (expression_statement "*q = *q | bVar14;" (assignment_expression "*q = *q | bVar14" (pointer_expression "*q" * identifier) = (binary_expression "*q | bVar14" (pointer_expression "*q" * identifier) | identifier)) ;) (if_statement "if (uVar8 == 0) {\n        q = q + 1;\n        (quantum_info->state).bits = 8;\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        q = q + 1;\n        (quantum_info->state).bits = 8;\n      }" { (expression_statement "q = q + 1;" (assignment_expression "q = q + 1" identifier = (binary_expression "q + 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_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) (expression_statement "p = p + image->number_channels;" (assignment_expression "p = p + image->number_channels" identifier = (binary_expression "p + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "q = q + quantum_info->pad;" (assignment_expression "q = q + quantum_info->pad" identifier = (binary_expression "q + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier))) ;) (if_statement "if (local_40 == (int)number_pixels) {\n      return;\n    }" if (parenthesized_expression "(local_40 == (int)number_pixels)" ( (binary_expression "local_40 == (int)number_pixels" identifier == (cast_expression "(int)number_pixels" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "uVar17 = quantum_info->depth;" (assignment_expression "uVar17 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void __regparm2\nFUN_0013bd70(int param_1,uint *param_2,int param_3,undefined4 param_4,int param_5,byte *param_6,\n            undefined4 param_7)\n\n{\n  float fVar1;\n  double dVar2;\n  longlong lVar3;\n  float fVar4;\n  double dVar5;\n  undefined2 uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte bVar10;\n  byte bVar11;\n  byte bVar12;\n  int iVar13;\n  byte bVar14;\n  int iVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  byte local_8c;\n  byte local_84;\n  byte local_7c;\n  byte local_74;\n  byte local_6c;\n  int local_64;\n  undefined8 local_5c;\n  int local_4c;\n  int iStack_48;\n  int local_40;\n  byte local_34;\n  \n  dVar5 = DAT_002a8000;\n  dVar2 = _DAT_0029f148;\n  if (*(int *)(param_1 + 4) != 2) {\n    ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n    return;\n  }\n  uVar16 = *param_2;\n  if (uVar16 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (param_3 < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar16 < 0x11) {\n    if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar16 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }\n  uVar9 = 0;\n  if (uVar16 < 0x41) {\n    uVar9 = uVar16;\n  }\n  bVar10 = (byte)(uVar9 - 1);\n  bVar11 = bVar10 & 0x1f;\n  uVar7 = 2 << (bVar10 & 0x1f);\n  uVar8 = uVar7;\n  uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11;\n  if ((uVar9 - 1 & 0x20) != 0) {\n    uVar8 = 0;\n    uVar18 = uVar7;\n  }\n  local_4c = uVar8 - 1;\n  iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0);\nLAB_0013be09:\n  if (param_3 < 1) {\n    return;\n  }\n  local_40 = 0;\n  do {\n    local_5c = 0;\n    iVar13 = *(int *)(param_1 + 0x2a8);\n    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);\n    if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar9 = param_2[0x14];\n    if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }\n    while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n    param_6 = param_6 + param_2[9];\n    if (local_40 == param_3) {\n      return;\n    }\n    uVar16 = *param_2;\n  } while( true );\n}\n\n" (function_definition "void __regparm2\nFUN_0013bd70(int param_1,uint *param_2,int param_3,undefined4 param_4,int param_5,byte *param_6,\n            undefined4 param_7)\n\n{\n  float fVar1;\n  double dVar2;\n  longlong lVar3;\n  float fVar4;\n  double dVar5;\n  undefined2 uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte bVar10;\n  byte bVar11;\n  byte bVar12;\n  int iVar13;\n  byte bVar14;\n  int iVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  byte local_8c;\n  byte local_84;\n  byte local_7c;\n  byte local_74;\n  byte local_6c;\n  int local_64;\n  undefined8 local_5c;\n  int local_4c;\n  int iStack_48;\n  int local_40;\n  byte local_34;\n  \n  dVar5 = DAT_002a8000;\n  dVar2 = _DAT_0029f148;\n  if (*(int *)(param_1 + 4) != 2) {\n    ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n    return;\n  }\n  uVar16 = *param_2;\n  if (uVar16 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (param_3 < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar16 < 0x11) {\n    if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar16 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }\n  uVar9 = 0;\n  if (uVar16 < 0x41) {\n    uVar9 = uVar16;\n  }\n  bVar10 = (byte)(uVar9 - 1);\n  bVar11 = bVar10 & 0x1f;\n  uVar7 = 2 << (bVar10 & 0x1f);\n  uVar8 = uVar7;\n  uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11;\n  if ((uVar9 - 1 & 0x20) != 0) {\n    uVar8 = 0;\n    uVar18 = uVar7;\n  }\n  local_4c = uVar8 - 1;\n  iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0);\nLAB_0013be09:\n  if (param_3 < 1) {\n    return;\n  }\n  local_40 = 0;\n  do {\n    local_5c = 0;\n    iVar13 = *(int *)(param_1 + 0x2a8);\n    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);\n    if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar9 = param_2[0x14];\n    if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }\n    while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n    param_6 = param_6 + param_2[9];\n    if (local_40 == param_3) {\n      return;\n    }\n    uVar16 = *param_2;\n  } while( true );\n}" primitive_type (ERROR "__regparm2" identifier) (function_declarator "FUN_0013bd70(int param_1,uint *param_2,int param_3,undefined4 param_4,int param_5,byte *param_6,\n            undefined4 param_7)" identifier (parameter_list "(int param_1,uint *param_2,int param_3,undefined4 param_4,int param_5,byte *param_6,\n            undefined4 param_7)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "byte *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined4 param_7" type_identifier identifier) ))) (compound_statement "{\n  float fVar1;\n  double dVar2;\n  longlong lVar3;\n  float fVar4;\n  double dVar5;\n  undefined2 uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte bVar10;\n  byte bVar11;\n  byte bVar12;\n  int iVar13;\n  byte bVar14;\n  int iVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  byte local_8c;\n  byte local_84;\n  byte local_7c;\n  byte local_74;\n  byte local_6c;\n  int local_64;\n  undefined8 local_5c;\n  int local_4c;\n  int iStack_48;\n  int local_40;\n  byte local_34;\n  \n  dVar5 = DAT_002a8000;\n  dVar2 = _DAT_0029f148;\n  if (*(int *)(param_1 + 4) != 2) {\n    ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n    return;\n  }\n  uVar16 = *param_2;\n  if (uVar16 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (param_3 < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar16 < 0x11) {\n    if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar16 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }\n  uVar9 = 0;\n  if (uVar16 < 0x41) {\n    uVar9 = uVar16;\n  }\n  bVar10 = (byte)(uVar9 - 1);\n  bVar11 = bVar10 & 0x1f;\n  uVar7 = 2 << (bVar10 & 0x1f);\n  uVar8 = uVar7;\n  uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11;\n  if ((uVar9 - 1 & 0x20) != 0) {\n    uVar8 = 0;\n    uVar18 = uVar7;\n  }\n  local_4c = uVar8 - 1;\n  iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0);\nLAB_0013be09:\n  if (param_3 < 1) {\n    return;\n  }\n  local_40 = 0;\n  do {\n    local_5c = 0;\n    iVar13 = *(int *)(param_1 + 0x2a8);\n    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);\n    if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar9 = param_2[0x14];\n    if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }\n    while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n    param_6 = param_6 + param_2[9];\n    if (local_40 == param_3) {\n      return;\n    }\n    uVar16 = *param_2;\n  } while( true );\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "float fVar4;" primitive_type identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "undefined2 uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "byte local_8c;" type_identifier identifier ;) (declaration "byte local_84;" type_identifier identifier ;) (declaration "byte local_7c;" type_identifier identifier ;) (declaration "byte local_74;" type_identifier identifier ;) (declaration "byte local_6c;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "undefined8 local_5c;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int iStack_48;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "byte local_34;" type_identifier identifier ;) (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;) (expression_statement "dVar2 = _DAT_0029f148;" (assignment_expression "dVar2 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 4) != 2) {\n    ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n    return;\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_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n    return;\n  }" { (expression_statement "ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);" (call_expression "ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318)" identifier (argument_list "(param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318)" ( identifier , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , (string_literal ""ExportCMYKOQuantum"" " 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) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (uVar16 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (param_3 < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );\n  }" if (parenthesized_expression "(uVar16 == 0x10)" ( (binary_expression "uVar16 == 0x10" identifier == number_literal) )) (compound_statement "{\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (param_3 < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );\n  }" { (if_statement "if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" if (parenthesized_expression "(param_2[2] == 1)" ( (binary_expression "param_2[2] == 1" (subscript_expression "param_2[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" { (if_statement "if (param_3 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);" do (compound_statement "{\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      }" { (expression_statement "uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));" (assignment_expression "uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)))" identifier = (call_expression "FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)))" identifier (argument_list "((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)))" ( (cast_expression "(float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8))" ( (binary_expression "(longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (binary_expression "(longdouble)dVar2 *\n                                    (longdouble)" (cast_expression "(longdouble)dVar2" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "param_5 + *(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 "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" identifier = (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar6 >> 8)" ( (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }" { (expression_statement "*param_6 = (byte)uVar6;" (assignment_expression "*param_6 = (byte)uVar6" (pointer_expression "*param_6" * identifier) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[1] = bVar11;" (assignment_expression "param_6[1] = bVar11" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }" else (compound_statement "{\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }" { (expression_statement "*param_6 = bVar11;" (assignment_expression "*param_6 = bVar11" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = (byte)uVar6;" (assignment_expression "param_6[1] = (byte)uVar6" (subscript_expression "param_6[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));" (assignment_expression "uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" identifier = (call_expression "FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" identifier (argument_list "((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" ( (cast_expression "(float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8))" ( (binary_expression "(longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (binary_expression "(longdouble)_DAT_0029f148 *\n                                    (longdouble)" (cast_expression "(longdouble)_DAT_0029f148" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "param_5 + *(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 "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" identifier = (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar6 >> 8)" ( (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }" { (expression_statement "param_6[2] = (byte)uVar6;" (assignment_expression "param_6[2] = (byte)uVar6" (subscript_expression "param_6[2]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[3] = bVar11;" (assignment_expression "param_6[3] = bVar11" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }" else (compound_statement "{\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }" { (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = (byte)uVar6;" (assignment_expression "param_6[3] = (byte)uVar6" (subscript_expression "param_6[3]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));" (assignment_expression "uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" identifier = (call_expression "FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" identifier (argument_list "((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" ( (cast_expression "(float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8))" ( (binary_expression "(longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (binary_expression "(longdouble)_DAT_0029f148 *\n                                    (longdouble)" (cast_expression "(longdouble)_DAT_0029f148" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "param_5 + *(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 "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" identifier = (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar6 >> 8)" ( (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }" { (expression_statement "param_6[4] = (byte)uVar6;" (assignment_expression "param_6[4] = (byte)uVar6" (subscript_expression "param_6[4]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[5] = bVar11;" (assignment_expression "param_6[5] = bVar11" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }" else (compound_statement "{\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }" { (expression_statement "param_6[5] = (byte)uVar6;" (assignment_expression "param_6[5] = (byte)uVar6" (subscript_expression "param_6[5]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[4] = bVar11;" (assignment_expression "param_6[4] = bVar11" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(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)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }" else (compound_statement "{\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }" { (expression_statement "fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));" (assignment_expression "fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" identifier = (cast_expression "(float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" ( (binary_expression "(longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (binary_expression "(longdouble)_DAT_0029f148 *\n                         (longdouble)" (cast_expression "(longdouble)_DAT_0029f148" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "param_5 + *(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 "uVar6 = FUN_00136290(fVar1);" (assignment_expression "uVar6 = FUN_00136290(fVar1)" identifier = (call_expression "FUN_00136290(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" identifier = (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar6 >> 8)" ( (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }" { (expression_statement "param_6[6] = (byte)uVar6;" (assignment_expression "param_6[6] = (byte)uVar6" (subscript_expression "param_6[6]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[7] = bVar11;" (assignment_expression "param_6[7] = bVar11" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }" else (compound_statement "{\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }" { (expression_statement "param_6[6] = bVar11;" (assignment_expression "param_6[6] = bVar11" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = (byte)uVar6;" (assignment_expression "param_6[7] = (byte)uVar6" (subscript_expression "param_6[7]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }" { (expression_statement "fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;" (assignment_expression "fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148" identifier = (binary_expression "(DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148" (parenthesized_expression "(DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" ( (binary_expression "DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "param_5 + *(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)_DAT_0029f148" ( (type_descriptor "float" primitive_type) ) identifier))) ;) })) (expression_statement "uVar6 = FUN_00136290(fVar1);" (assignment_expression "uVar6 = FUN_00136290(fVar1)" identifier = (call_expression "FUN_00136290(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" identifier = (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar6 >> 8)" ( (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }" { (expression_statement "param_6[8] = (byte)uVar6;" (assignment_expression "param_6[8] = (byte)uVar6" (subscript_expression "param_6[8]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[9] = bVar11;" (assignment_expression "param_6[9] = bVar11" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }" else (compound_statement "{\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }" { (expression_statement "param_6[8] = bVar11;" (assignment_expression "param_6[8] = bVar11" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[9] = (byte)uVar6;" (assignment_expression "param_6[9] = (byte)uVar6" (subscript_expression "param_6[9]" identifier [ number_literal ]) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "param_6 = param_6 + param_2[9] + 10;" (assignment_expression "param_6 = param_6 + param_2[9] + 10" identifier = (binary_expression "param_6 + param_2[9] + 10" (binary_expression "param_6 + param_2[9]" identifier + (subscript_expression "param_2[9]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "param_5 + *(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))) ;) }) while (parenthesized_expression "(local_64 != param_3)" ( (binary_expression "local_64 != param_3" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if (param_3 < 1) {\n      return;\n    }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );" do (compound_statement "{\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    }" { (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "param_5 + *(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 (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x10] != 1) goto LAB_0013caf0;" if (parenthesized_expression "(param_2[0x10] != 1)" ( (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0013caf0;" goto statement_identifier ;)) (labeled_statement "LAB_0013cf50:\n        *param_6 = bVar11;" statement_identifier : (expression_statement "*param_6 = bVar11;" (assignment_expression "*param_6 = bVar11" (pointer_expression "*param_6" * identifier) = identifier) ;)) (expression_statement "param_6[1] = bVar10;" (assignment_expression "param_6[1] = bVar10" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }" else (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }" { (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" ( (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "bVar14 = 0xff;" (assignment_expression "bVar14 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" else (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" { (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar14 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar14 = (byte)((uint)iVar13 >> 8)" identifier = (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) (expression_statement "bVar12 = (byte)iVar13;" (assignment_expression "bVar12 = (byte)iVar13" identifier = (cast_expression "(byte)iVar13" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar11 = bVar12;" (assignment_expression "bVar11 = bVar12" identifier = identifier) ;) (expression_statement "bVar10 = bVar14;" (assignment_expression "bVar10 = bVar14" identifier = identifier) ;) (if_statement "if (param_2[0x10] == 1) goto LAB_0013cf50;" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0013cf50;" goto statement_identifier ;)) (labeled_statement "LAB_0013caf0:\n        *param_6 = bVar14;" statement_identifier : (expression_statement "*param_6 = bVar14;" (assignment_expression "*param_6 = bVar14" (pointer_expression "*param_6" * identifier) = identifier) ;)) (expression_statement "param_6[1] = bVar12;" (assignment_expression "param_6[1] = bVar12" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "param_5 + *(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 (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x10] != 1) goto LAB_0013cb64;" if (parenthesized_expression "(param_2[0x10] != 1)" ( (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0013cb64;" goto statement_identifier ;)) (labeled_statement "LAB_0013cf28:\n        param_6[2] = bVar11;" statement_identifier : (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[3] = bVar12;" (assignment_expression "param_6[3] = bVar12" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }" else (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }" { (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" ( (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" else (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" { (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar12 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar12 = (byte)((uint)iVar13 >> 8)" identifier = (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) (expression_statement "bVar10 = (byte)iVar13;" (assignment_expression "bVar10 = (byte)iVar13" identifier = (cast_expression "(byte)iVar13" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar11 = bVar10;" (assignment_expression "bVar11 = bVar10" identifier = identifier) ;) (if_statement "if (param_2[0x10] == 1) goto LAB_0013cf28;" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0013cf28;" goto statement_identifier ;)) (labeled_statement "LAB_0013cb64:\n        param_6[3] = bVar10;" statement_identifier : (expression_statement "param_6[3] = bVar10;" (assignment_expression "param_6[3] = bVar10" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[2] = bVar12;" (assignment_expression "param_6[2] = bVar12" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "param_5 + *(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 (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x10] != 1) goto LAB_0013cbe0;" if (parenthesized_expression "(param_2[0x10] != 1)" ( (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0013cbe0;" goto statement_identifier ;)) (labeled_statement "LAB_0013cf00:\n        param_6[4] = bVar11;" statement_identifier : (expression_statement "param_6[4] = bVar11;" (assignment_expression "param_6[4] = bVar11" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[5] = bVar12;" (assignment_expression "param_6[5] = bVar12" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }" else (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }" { (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" ( (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" else (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" { (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar12 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar12 = (byte)((uint)iVar13 >> 8)" identifier = (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) (expression_statement "bVar10 = (byte)iVar13;" (assignment_expression "bVar10 = (byte)iVar13" identifier = (cast_expression "(byte)iVar13" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar11 = bVar10;" (assignment_expression "bVar11 = bVar10" identifier = identifier) ;) (if_statement "if (param_2[0x10] == 1) goto LAB_0013cf00;" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0013cf00;" goto statement_identifier ;)) (labeled_statement "LAB_0013cbe0:\n        param_6[4] = bVar12;" statement_identifier : (expression_statement "param_6[4] = bVar12;" (assignment_expression "param_6[4] = bVar12" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[5] = bVar10;" (assignment_expression "param_6[5] = bVar10" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 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 "(dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)" ( (comma_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "param_5 + *(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 "dVar2 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }" { (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x10] != 1) goto LAB_0013ca13;" if (parenthesized_expression "(param_2[0x10] != 1)" ( (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0013ca13;" goto statement_identifier ;)) (labeled_statement "LAB_0013cc16:\n        bVar17 = 0;" statement_identifier : (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;)) (expression_statement "param_6[6] = bVar11;" (assignment_expression "param_6[6] = bVar11" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = bVar10;" (assignment_expression "param_6[7] = bVar10" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar15 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar15 = *(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) ))))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;" if (parenthesized_expression "(*(int *)(iVar15 + 0x34) != 4)" ( (binary_expression "*(int *)(iVar15 + 0x34) != 4" (pointer_expression "*(int *)(iVar15 + 0x34)" * (cast_expression "(int *)(iVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x34)" ( (binary_expression "iVar15 + 0x34" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0013ca40;" goto statement_identifier ;)) (labeled_statement "LAB_0013cc36:\n        bVar17 = 0;" statement_identifier : (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;)) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);" (assignment_expression "fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar15 + 0x38) * 8)" ( (binary_expression "param_5 + *(int *)(iVar15 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar15 + 0x38) * 8" (pointer_expression "*(int *)(iVar15 + 0x38)" * (cast_expression "(int *)(iVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x38)" ( (binary_expression "iVar15 + 0x38" identifier + number_literal) )))) * number_literal)) ))))))) ;) (if_statement "if (fVar1 <= 0.0) goto LAB_0013ca40;" if (parenthesized_expression "(fVar1 <= 0.0)" ( (binary_expression "fVar1 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_0013ca40;" goto statement_identifier ;)) (if_statement "if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }" if (parenthesized_expression "(DAT_0029f710 <= fVar1)" ( (binary_expression "DAT_0029f710 <= fVar1" identifier <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" identifier = number_literal) ;) (goto_statement "goto LAB_0013ca40;" goto statement_identifier ;) })) (expression_statement "iVar13 = (int)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "iVar13 = (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 "bVar17 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar17 = (byte)((uint)iVar13 >> 8)" identifier = (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] != 1) goto LAB_0013ca4a;" if (parenthesized_expression "(param_2[0x10] != 1)" ( (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0013ca4a;" goto statement_identifier ;)) (labeled_statement "LAB_0013cca5:\n        param_6[8] = (byte)iVar13;" statement_identifier : (expression_statement "param_6[8] = (byte)iVar13;" (assignment_expression "param_6[8] = (byte)iVar13" (subscript_expression "param_6[8]" identifier [ number_literal ]) = (cast_expression "(byte)iVar13" ( (type_descriptor "byte" type_identifier) ) identifier)) ;)) (expression_statement "param_6[9] = bVar17;" (assignment_expression "param_6[9] = bVar17" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }" else (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }" { (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" ( (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }" { (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" identifier = number_literal) ;) (expression_statement "bVar14 = 0xff;" (assignment_expression "bVar14 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" else (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" { (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar14 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar14 = (byte)((uint)iVar13 >> 8)" identifier = (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar13 >> 8)" ( (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) (expression_statement "bVar12 = (byte)iVar13;" (assignment_expression "bVar12 = (byte)iVar13" identifier = (cast_expression "(byte)iVar13" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar11 = bVar12;" (assignment_expression "bVar11 = bVar12" identifier = identifier) ;) (expression_statement "bVar10 = bVar14;" (assignment_expression "bVar10 = bVar14" identifier = identifier) ;) (if_statement "if (param_2[0x10] == 1) goto LAB_0013cc16;" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0013cc16;" goto statement_identifier ;)) (labeled_statement "LAB_0013ca13:\n        bVar17 = 0;" statement_identifier : (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;)) (expression_statement "param_6[6] = bVar14;" (assignment_expression "param_6[6] = bVar14" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = bVar12;" (assignment_expression "param_6[7] = bVar12" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar15 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar15 = *(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) ))))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;" if (parenthesized_expression "(*(int *)(iVar15 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar15 + 0x34) == 4" (pointer_expression "*(int *)(iVar15 + 0x34)" * (cast_expression "(int *)(iVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x34)" ( (binary_expression "iVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0013cc36;" goto statement_identifier ;)) (labeled_statement "LAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;" statement_identifier : (if_statement "if (param_2[0x10] == 1) goto LAB_0013cca5;" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0013cca5;" goto statement_identifier ;))) (labeled_statement "LAB_0013ca4a:\n        param_6[9] = (byte)iVar13;" statement_identifier : (expression_statement "param_6[9] = (byte)iVar13;" (assignment_expression "param_6[9] = (byte)iVar13" (subscript_expression "param_6[9]" identifier [ number_literal ]) = (cast_expression "(byte)iVar13" ( (type_descriptor "byte" type_identifier) ) identifier)) ;)) (expression_statement "param_6[8] = bVar17;" (assignment_expression "param_6[8] = bVar17" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[9] + 10;" (assignment_expression "param_6 = param_6 + param_2[9] + 10" identifier = (binary_expression "param_6 + param_2[9] + 10" (binary_expression "param_6 + param_2[9]" identifier + (subscript_expression "param_2[9]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "param_5 + *(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 (local_64 == param_3) {\n        return;\n      }" if (parenthesized_expression "(local_64 == param_3)" ( (binary_expression "local_64 == param_3" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (uVar16 < 0x11) {\n    if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar16 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }" if (parenthesized_expression "(uVar16 < 0x11)" ( (binary_expression "uVar16 < 0x11" identifier < number_literal) )) (compound_statement "{\n    if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar16 == 0) goto LAB_0013be09;\n  }" { (if_statement "if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }" if (parenthesized_expression "(uVar16 == 8)" ( (binary_expression "uVar16 == 8" identifier == number_literal) )) (compound_statement "{\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }" { (if_statement "if (param_3 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);" do (compound_statement "{\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      }" { (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "param_5 + *(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 "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar2 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" ( (binary_expression "dVar2 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" { (expression_statement "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "*param_6 = bVar11;" (assignment_expression "*param_6 = bVar11" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "param_5 + *(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 "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar2 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" ( (binary_expression "dVar2 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" { (expression_statement "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "param_6[1] = bVar11;" (assignment_expression "param_6[1] = bVar11" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "param_5 + *(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 "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar2 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" ( (binary_expression "dVar2 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" { (expression_statement "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)" (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 "(dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)" ( (comma_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "param_5 + *(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 < dVar2" number_literal < identifier)) ))) )) (compound_statement "{\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" { (expression_statement "dVar2 = dVar2 / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar2 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" ( (binary_expression "dVar2 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" { (expression_statement "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "param_6[3] = bVar11;" (assignment_expression "param_6[3] = bVar11" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (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 *)(param_5 + *(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 *)(param_5 + *(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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)" ( (comma_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1" (assignment_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "param_5 + *(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          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (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 "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (if_statement "if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }" if (parenthesized_expression "(fVar1 < DAT_002a7ff4)" ( (binary_expression "fVar1 < DAT_002a7ff4" identifier < identifier) )) (compound_statement "{\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }" { (expression_statement "bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "bVar11 = (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_6[4] = bVar11;" (assignment_expression "param_6[4] = bVar11" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "param_5 + *(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_6 = param_6 + param_2[9] + 5;" (assignment_expression "param_6 = param_6 + param_2[9] + 5" identifier = (binary_expression "param_6 + param_2[9] + 5" (binary_expression "param_6 + param_2[9]" identifier + (subscript_expression "param_2[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != param_3)" ( (binary_expression "iVar13 != param_3" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0013d3f8:\n    local_4c = 0;" statement_identifier : (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;)) (expression_statement "iStack_48 = 0;" (assignment_expression "iStack_48 = 0" identifier = number_literal) ;) (if_statement "if (uVar16 == 0) goto LAB_0013be09;" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013be09;" goto statement_identifier ;)) }) (else_clause "else {\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }" else (compound_statement "{\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }" { (if_statement "if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" if (parenthesized_expression "(uVar16 == 0x20)" ( (binary_expression "uVar16 == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" { (if_statement "if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }" if (parenthesized_expression "(param_2[2] == 1)" ( (binary_expression "param_2[2] == 1" (subscript_expression "param_2[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }" { (if_statement "if (param_3 < 1) {\n          return;\n        }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);" do (compound_statement "{\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        }" { (expression_statement "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" identifier = (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11)" (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "param_5 + *(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)*(double *)(param_2 + 0x11)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) )))))) + (cast_expression "(float)*(double *)(param_2 + 3)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) ))))))) ;) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (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 "bVar12 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar12 = (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) )))) ;) (expression_statement "bVar10 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar10 = (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) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }" { (expression_statement "*param_6 = SUB41(fVar1,0);" (assignment_expression "*param_6 = SUB41(fVar1,0)" (pointer_expression "*param_6" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[1] = bVar11;" (assignment_expression "param_6[1] = bVar11" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = bVar12;" (assignment_expression "param_6[2] = bVar12" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = bVar10;" (assignment_expression "param_6[3] = bVar10" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }" { (expression_statement "param_6[1] = bVar12;" (assignment_expression "param_6[1] = bVar12" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_6 = bVar10;" (assignment_expression "*param_6 = bVar10" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = SUB41(fVar1,0);" (assignment_expression "param_6[3] = SUB41(fVar1,0)" (subscript_expression "param_6[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" identifier = (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11)" (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "param_5 + *(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)*(double *)(param_2 + 0x11)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) )))))) + (cast_expression "(float)*(double *)(param_2 + 3)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) ))))))) ;) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (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 "bVar10 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar10 = (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 "bVar12 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar12 = (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 (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }" { (expression_statement "param_6[4] = SUB41(fVar1,0);" (assignment_expression "param_6[4] = SUB41(fVar1,0)" (subscript_expression "param_6[4]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[5] = bVar11;" (assignment_expression "param_6[5] = bVar11" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = bVar12;" (assignment_expression "param_6[6] = bVar12" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = bVar10;" (assignment_expression "param_6[7] = bVar10" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }" { (expression_statement "param_6[4] = bVar10;" (assignment_expression "param_6[4] = bVar10" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = bVar11;" (assignment_expression "param_6[6] = bVar11" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[5] = bVar12;" (assignment_expression "param_6[5] = bVar12" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = SUB41(fVar1,0);" (assignment_expression "param_6[7] = SUB41(fVar1,0)" (subscript_expression "param_6[7]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" identifier = (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11)" (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "param_5 + *(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)*(double *)(param_2 + 0x11)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) )))))) + (cast_expression "(float)*(double *)(param_2 + 3)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) ))))))) ;) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (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 "bVar10 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar10 = (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 "bVar12 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar12 = (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 (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }" { (expression_statement "param_6[8] = SUB41(fVar1,0);" (assignment_expression "param_6[8] = SUB41(fVar1,0)" (subscript_expression "param_6[8]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[10] = bVar12;" (assignment_expression "param_6[10] = bVar12" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[9] = bVar11;" (assignment_expression "param_6[9] = bVar11" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = bVar10;" (assignment_expression "param_6[0xb] = bVar10" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }" { (expression_statement "param_6[10] = bVar11;" (assignment_expression "param_6[10] = bVar11" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[8] = bVar10;" (assignment_expression "param_6[8] = bVar10" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[9] = bVar12;" (assignment_expression "param_6[9] = bVar12" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = SUB41(fVar1,0);" (assignment_expression "param_6[0xb] = SUB41(fVar1,0)" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }" else (compound_statement "{\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }" { (expression_statement "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);" (assignment_expression "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "param_5 + *(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)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" identifier = (binary_expression "fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "fVar1 * (float)*(double *)(param_2 + 0x11)" identifier * (cast_expression "(float)*(double *)(param_2 + 0x11)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) )))))) + (cast_expression "(float)*(double *)(param_2 + 3)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) ))))))) ;) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (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 "bVar12 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar12 = (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 "bVar10 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar10 = (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 (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }" { (expression_statement "param_6[0xc] = SUB41(fVar1,0);" (assignment_expression "param_6[0xc] = SUB41(fVar1,0)" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0xe] = bVar10;" (assignment_expression "param_6[0xe] = bVar10" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xd] = bVar11;" (assignment_expression "param_6[0xd] = bVar11" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = bVar12;" (assignment_expression "param_6[0xf] = bVar12" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }" { (expression_statement "param_6[0xe] = bVar11;" (assignment_expression "param_6[0xe] = bVar11" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xc] = bVar12;" (assignment_expression "param_6[0xc] = bVar12" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xd] = bVar10;" (assignment_expression "param_6[0xd] = bVar10" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = SUB41(fVar1,0);" (assignment_expression "param_6[0xf] = SUB41(fVar1,0)" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }" { (expression_statement "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "param_5 + *(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)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" identifier = (binary_expression "fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "fVar1 * (float)*(double *)(param_2 + 0x11)" identifier * (cast_expression "(float)*(double *)(param_2 + 0x11)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) )))))) + (cast_expression "(float)*(double *)(param_2 + 3)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) ))))))) ;) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (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 "bVar12 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar12 = (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 "bVar10 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar10 = (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 (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }" { (expression_statement "param_6[0x10] = SUB41(fVar1,0);" (assignment_expression "param_6[0x10] = SUB41(fVar1,0)" (subscript_expression "param_6[0x10]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0x12] = bVar10;" (assignment_expression "param_6[0x12] = bVar10" (subscript_expression "param_6[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x11] = bVar11;" (assignment_expression "param_6[0x11] = bVar11" (subscript_expression "param_6[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x13] = bVar12;" (assignment_expression "param_6[0x13] = bVar12" (subscript_expression "param_6[0x13]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }" else (compound_statement "{\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }" { (expression_statement "param_6[0x12] = bVar11;" (assignment_expression "param_6[0x12] = bVar11" (subscript_expression "param_6[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x10] = bVar12;" (assignment_expression "param_6[0x10] = bVar12" (subscript_expression "param_6[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x11] = bVar10;" (assignment_expression "param_6[0x11] = bVar10" (subscript_expression "param_6[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x13] = SUB41(fVar1,0);" (assignment_expression "param_6[0x13] = SUB41(fVar1,0)" (subscript_expression "param_6[0x13]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[9] + 0x14;" (assignment_expression "param_6 = param_6 + param_2[9] + 0x14" identifier = (binary_expression "param_6 + param_2[9] + 0x14" (binary_expression "param_6 + param_2[9]" identifier + (subscript_expression "param_2[9]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "param_5 + *(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))) ;) }) while (parenthesized_expression "(local_64 != param_3)" ( (binary_expression "local_64 != param_3" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if (param_3 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);" do (compound_statement "{\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      }" { (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "param_5 + *(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 (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }" else (compound_statement "{\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }" { (expression_statement "dVar2 = dVar2 * (double)DAT_002a7fec;" (assignment_expression "dVar2 = dVar2 * (double)DAT_002a7fec" identifier = (binary_expression "dVar2 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }" if (parenthesized_expression "(dVar5 <= dVar2)" ( (binary_expression "dVar5 <= dVar2" identifier <= identifier) )) (compound_statement "{\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }" { (expression_statement "local_34 = 0xff;" (assignment_expression "local_34 = 0xff" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_34 = (byte)lVar3;" (assignment_expression "local_34 = (byte)lVar3" identifier = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar10 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar10 = (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 "bVar11 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar11 = (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) )))) ;) (expression_statement "bVar12 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar12 = (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) )))) ;) }))) }))) (if_statement "if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }" { (expression_statement "param_6[1] = bVar12;" (assignment_expression "param_6[1] = bVar12" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_6 = local_34;" (assignment_expression "*param_6 = local_34" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = bVar10;" (assignment_expression "param_6[3] = bVar10" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }" else (compound_statement "{\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }" { (expression_statement "param_6[2] = bVar12;" (assignment_expression "param_6[2] = bVar12" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_6 = bVar10;" (assignment_expression "*param_6 = bVar10" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[3] = local_34;" (assignment_expression "param_6[3] = local_34" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[1] = bVar11;" (assignment_expression "param_6[1] = bVar11" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "param_5 + *(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 (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" else (compound_statement "{\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" { (expression_statement "dVar2 = dVar2 * (double)DAT_002a7fec;" (assignment_expression "dVar2 = dVar2 * (double)DAT_002a7fec" identifier = (binary_expression "dVar2 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" if (parenthesized_expression "(DAT_002a8000 <= dVar2)" ( (binary_expression "DAT_002a8000 <= dVar2" identifier <= identifier) )) (compound_statement "{\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }" { (expression_statement "local_34 = 0xff;" (assignment_expression "local_34 = 0xff" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_34 = (byte)lVar3;" (assignment_expression "local_34 = (byte)lVar3" identifier = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar12 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar12 = (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 "bVar10 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar10 = (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 "bVar11 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar11 = (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 (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }" { (expression_statement "param_6[4] = local_34;" (assignment_expression "param_6[4] = local_34" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = bVar11;" (assignment_expression "param_6[6] = bVar11" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[5] = bVar12;" (assignment_expression "param_6[5] = bVar12" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = bVar10;" (assignment_expression "param_6[7] = bVar10" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }" else (compound_statement "{\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }" { (expression_statement "param_6[4] = bVar10;" (assignment_expression "param_6[4] = bVar10" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[5] = bVar11;" (assignment_expression "param_6[5] = bVar11" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = bVar12;" (assignment_expression "param_6[6] = bVar12" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = local_34;" (assignment_expression "param_6[7] = local_34" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "param_5 + *(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 (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" else (compound_statement "{\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" { (expression_statement "dVar2 = dVar2 * (double)DAT_002a7fec;" (assignment_expression "dVar2 = dVar2 * (double)DAT_002a7fec" identifier = (binary_expression "dVar2 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" if (parenthesized_expression "(DAT_002a8000 <= dVar2)" ( (binary_expression "DAT_002a8000 <= dVar2" identifier <= identifier) )) (compound_statement "{\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }" { (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (expression_statement "bVar14 = 0xff;" (assignment_expression "bVar14 = 0xff" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar14 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar14 = (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 "bVar11 = (byte)lVar3;" (assignment_expression "bVar11 = (byte)lVar3" identifier = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar10 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar10 = (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 "bVar12 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar12 = (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 (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }" { (expression_statement "param_6[10] = bVar12;" (assignment_expression "param_6[10] = bVar12" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = bVar10;" (assignment_expression "param_6[0xb] = bVar10" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[8] = bVar11;" (assignment_expression "param_6[8] = bVar11" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[9] = bVar14;" (assignment_expression "param_6[9] = bVar14" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }" else (compound_statement "{\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }" { (expression_statement "param_6[9] = bVar12;" (assignment_expression "param_6[9] = bVar12" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[10] = bVar14;" (assignment_expression "param_6[10] = bVar14" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[8] = bVar10;" (assignment_expression "param_6[8] = bVar10" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = bVar11;" (assignment_expression "param_6[0xb] = bVar11" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 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 "(dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)" ( (comma_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "param_5 + *(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 "dVar2 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" else (compound_statement "{\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" { (expression_statement "dVar2 = dVar2 * (double)DAT_002a7fec;" (assignment_expression "dVar2 = dVar2 * (double)DAT_002a7fec" identifier = (binary_expression "dVar2 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" if (parenthesized_expression "(DAT_002a8000 <= dVar2)" ( (binary_expression "DAT_002a8000 <= dVar2" identifier <= identifier) )) (compound_statement "{\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }" { (expression_statement "local_34 = 0xff;" (assignment_expression "local_34 = 0xff" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" identifier (argument_list "(dVar2 + (double)DAT_0029f124)" ( (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_34 = (byte)lVar3;" (assignment_expression "local_34 = (byte)lVar3" identifier = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar12 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar12 = (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 "bVar10 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar10 = (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 "bVar11 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar11 = (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 (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }" { (expression_statement "param_6[0xc] = local_34;" (assignment_expression "param_6[0xc] = local_34" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xe] = bVar11;" (assignment_expression "param_6[0xe] = bVar11" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xd] = bVar12;" (assignment_expression "param_6[0xd] = bVar12" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = bVar10;" (assignment_expression "param_6[0xf] = bVar10" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }" else (compound_statement "{\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }" { (expression_statement "param_6[0xc] = bVar10;" (assignment_expression "param_6[0xc] = bVar10" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xd] = bVar11;" (assignment_expression "param_6[0xd] = bVar11" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xe] = bVar12;" (assignment_expression "param_6[0xe] = bVar12" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = local_34;" (assignment_expression "param_6[0xf] = local_34" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 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 "(fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)" ( (comma_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0" (assignment_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "param_5 + *(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 "fVar1 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" else (compound_statement "{\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" { (expression_statement "fVar1 = fVar1 * DAT_002a7fec;" (assignment_expression "fVar1 = fVar1 * DAT_002a7fec" identifier = (binary_expression "fVar1 * DAT_002a7fec" identifier * identifier)) ;) (if_statement "if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" if (parenthesized_expression "((float)DAT_002a8000 <= fVar1)" ( (binary_expression "(float)DAT_002a8000 <= fVar1" (cast_expression "(float)DAT_002a8000" ( (type_descriptor "float" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }" { (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" identifier = number_literal) ;) (expression_statement "bVar14 = 0xff;" (assignment_expression "bVar14 = 0xff" identifier = number_literal) ;) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" else (compound_statement "{\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" { (expression_statement "lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(fVar1 + DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(fVar1 + DAT_0029f124)" identifier (argument_list "(fVar1 + DAT_0029f124)" ( (binary_expression "fVar1 + DAT_0029f124" identifier + identifier) ))))) ;) (expression_statement "bVar14 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar14 = (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 "bVar11 = (byte)lVar3;" (assignment_expression "bVar11 = (byte)lVar3" identifier = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar12 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar12 = (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 "bVar10 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar10 = (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 (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }" { (expression_statement "param_6[0x12] = bVar10;" (assignment_expression "param_6[0x12] = bVar10" (subscript_expression "param_6[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x13] = bVar12;" (assignment_expression "param_6[0x13] = bVar12" (subscript_expression "param_6[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x10] = bVar11;" (assignment_expression "param_6[0x10] = bVar11" (subscript_expression "param_6[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x11] = bVar14;" (assignment_expression "param_6[0x11] = bVar14" (subscript_expression "param_6[0x11]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }" else (compound_statement "{\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }" { (expression_statement "param_6[0x11] = bVar10;" (assignment_expression "param_6[0x11] = bVar10" (subscript_expression "param_6[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x12] = bVar14;" (assignment_expression "param_6[0x12] = bVar14" (subscript_expression "param_6[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x10] = bVar12;" (assignment_expression "param_6[0x10] = bVar12" (subscript_expression "param_6[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x13] = bVar11;" (assignment_expression "param_6[0x13] = bVar11" (subscript_expression "param_6[0x13]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[9] + 0x14;" (assignment_expression "param_6 = param_6 + param_2[9] + 0x14" identifier = (binary_expression "param_6 + param_2[9] + 0x14" (binary_expression "param_6 + param_2[9]" identifier + (subscript_expression "param_2[9]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "param_5 + *(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))) ;) }) while (parenthesized_expression "(local_64 != param_3)" ( (binary_expression "local_64 != param_3" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar16 != 0x40) goto LAB_0013d3f8;" if (parenthesized_expression "(uVar16 != 0x40)" ( (binary_expression "uVar16 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_0013d3f8;" goto statement_identifier ;)) (if_statement "if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" if (parenthesized_expression "(param_2[2] == 1)" ( (binary_expression "param_2[2] == 1" (subscript_expression "param_2[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" { (if_statement "if (param_3 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (do_statement "do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);" do (compound_statement "{\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      }" { (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" identifier = (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11)" (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "param_5 + *(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)) )))) * (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) )))))) ;) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }" { (expression_statement "*param_6 = SUB81(dVar2,0);" (assignment_expression "*param_6 = SUB81(dVar2,0)" (pointer_expression "*param_6" * identifier) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[4] = bVar10;" (assignment_expression "param_6[4] = bVar10" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[5] = bVar11;" (assignment_expression "param_6[5] = bVar11" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[1] = local_8c;" (assignment_expression "param_6[1] = local_8c" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = local_6c;" (assignment_expression "param_6[2] = local_6c" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = local_74;" (assignment_expression "param_6[3] = local_74" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = local_7c;" (assignment_expression "param_6[6] = local_7c" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = local_84;" (assignment_expression "param_6[7] = local_84" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }" else (compound_statement "{\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }" { (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = bVar10;" (assignment_expression "param_6[3] = bVar10" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = SUB81(dVar2,0);" (assignment_expression "param_6[7] = SUB81(dVar2,0)" (subscript_expression "param_6[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[4] = local_74;" (assignment_expression "param_6[4] = local_74" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_6 = local_84;" (assignment_expression "*param_6 = local_84" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[5] = local_6c;" (assignment_expression "param_6[5] = local_6c" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[1] = local_7c;" (assignment_expression "param_6[1] = local_7c" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = local_8c;" (assignment_expression "param_6[6] = local_8c" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" identifier = (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11)" (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "param_5 + *(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)) )))) * (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) )))))) ;) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }" { (expression_statement "param_6[8] = SUB81(dVar2,0);" (assignment_expression "param_6[8] = SUB81(dVar2,0)" (subscript_expression "param_6[8]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0xc] = bVar10;" (assignment_expression "param_6[0xc] = bVar10" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xd] = bVar11;" (assignment_expression "param_6[0xd] = bVar11" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[9] = local_8c;" (assignment_expression "param_6[9] = local_8c" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xe] = local_7c;" (assignment_expression "param_6[0xe] = local_7c" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = local_84;" (assignment_expression "param_6[0xf] = local_84" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[10] = local_6c;" (assignment_expression "param_6[10] = local_6c" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = local_74;" (assignment_expression "param_6[0xb] = local_74" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }" else (compound_statement "{\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }" { (expression_statement "param_6[0xb] = bVar10;" (assignment_expression "param_6[0xb] = bVar10" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[10] = bVar11;" (assignment_expression "param_6[10] = bVar11" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = SUB81(dVar2,0);" (assignment_expression "param_6[0xf] = SUB81(dVar2,0)" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0xc] = local_74;" (assignment_expression "param_6[0xc] = local_74" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[8] = local_84;" (assignment_expression "param_6[8] = local_84" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xd] = local_6c;" (assignment_expression "param_6[0xd] = local_6c" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[9] = local_7c;" (assignment_expression "param_6[9] = local_7c" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xe] = local_8c;" (assignment_expression "param_6[0xe] = local_8c" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" identifier = (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11)" (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "param_5 + *(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)) )))) * (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) )))))) ;) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }" { (expression_statement "param_6[0x14] = bVar11;" (assignment_expression "param_6[0x14] = bVar11" (subscript_expression "param_6[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x10] = SUB81(dVar2,0);" (assignment_expression "param_6[0x10] = SUB81(dVar2,0)" (subscript_expression "param_6[0x10]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0x11] = local_8c;" (assignment_expression "param_6[0x11] = local_8c" (subscript_expression "param_6[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x12] = local_6c;" (assignment_expression "param_6[0x12] = local_6c" (subscript_expression "param_6[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x13] = local_74;" (assignment_expression "param_6[0x13] = local_74" (subscript_expression "param_6[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x15] = bVar10;" (assignment_expression "param_6[0x15] = bVar10" (subscript_expression "param_6[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x16] = local_7c;" (assignment_expression "param_6[0x16] = local_7c" (subscript_expression "param_6[0x16]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x17] = local_84;" (assignment_expression "param_6[0x17] = local_84" (subscript_expression "param_6[0x17]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }" else (compound_statement "{\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }" { (expression_statement "param_6[0x13] = bVar11;" (assignment_expression "param_6[0x13] = bVar11" (subscript_expression "param_6[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x17] = SUB81(dVar2,0);" (assignment_expression "param_6[0x17] = SUB81(dVar2,0)" (subscript_expression "param_6[0x17]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0x10] = local_84;" (assignment_expression "param_6[0x10] = local_84" (subscript_expression "param_6[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x11] = local_7c;" (assignment_expression "param_6[0x11] = local_7c" (subscript_expression "param_6[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x12] = bVar10;" (assignment_expression "param_6[0x12] = bVar10" (subscript_expression "param_6[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x14] = local_74;" (assignment_expression "param_6[0x14] = local_74" (subscript_expression "param_6[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x15] = local_6c;" (assignment_expression "param_6[0x15] = local_6c" (subscript_expression "param_6[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x16] = local_8c;" (assignment_expression "param_6[0x16] = local_8c" (subscript_expression "param_6[0x16]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(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          dVar2 = 0.0;\n        }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }" else (compound_statement "{\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }" { (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "param_5 + *(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 "dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" identifier = (binary_expression "dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "dVar2 * *(double *)(param_2 + 0x11)" identifier * (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) )))))) ;) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }" { (expression_statement "param_6[0x1c] = bVar11;" (assignment_expression "param_6[0x1c] = bVar11" (subscript_expression "param_6[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1d] = bVar10;" (assignment_expression "param_6[0x1d] = bVar10" (subscript_expression "param_6[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x18] = SUB81(dVar2,0);" (assignment_expression "param_6[0x18] = SUB81(dVar2,0)" (subscript_expression "param_6[0x18]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0x19] = local_8c;" (assignment_expression "param_6[0x19] = local_8c" (subscript_expression "param_6[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1e] = local_7c;" (assignment_expression "param_6[0x1e] = local_7c" (subscript_expression "param_6[0x1e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1a] = local_6c;" (assignment_expression "param_6[0x1a] = local_6c" (subscript_expression "param_6[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1b] = local_74;" (assignment_expression "param_6[0x1b] = local_74" (subscript_expression "param_6[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1f] = local_84;" (assignment_expression "param_6[0x1f] = local_84" (subscript_expression "param_6[0x1f]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }" else (compound_statement "{\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }" { (expression_statement "param_6[0x1b] = bVar11;" (assignment_expression "param_6[0x1b] = bVar11" (subscript_expression "param_6[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1f] = SUB81(dVar2,0);" (assignment_expression "param_6[0x1f] = SUB81(dVar2,0)" (subscript_expression "param_6[0x1f]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0x1c] = local_74;" (assignment_expression "param_6[0x1c] = local_74" (subscript_expression "param_6[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x18] = local_84;" (assignment_expression "param_6[0x18] = local_84" (subscript_expression "param_6[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1d] = local_6c;" (assignment_expression "param_6[0x1d] = local_6c" (subscript_expression "param_6[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x19] = local_7c;" (assignment_expression "param_6[0x19] = local_7c" (subscript_expression "param_6[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1a] = bVar10;" (assignment_expression "param_6[0x1a] = bVar10" (subscript_expression "param_6[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1e] = local_8c;" (assignment_expression "param_6[0x1e] = local_8c" (subscript_expression "param_6[0x1e]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 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          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }" { (expression_statement "dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "(double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "param_5 + *(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          dVar2 = 0.0;\n        }" else (compound_statement "{\n          dVar2 = 0.0;\n        }" { (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" identifier = (binary_expression "dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "dVar2 * *(double *)(param_2 + 0x11)" identifier * (pointer_expression "*(double *)(param_2 + 0x11)" * (cast_expression "(double *)(param_2 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x11)" ( (binary_expression "param_2 + 0x11" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 3)" * (cast_expression "(double *)(param_2 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 3)" ( (binary_expression "param_2 + 3" identifier + number_literal) )))))) ;) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x20)" ( (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x28)" ( (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x38)" ( (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x30)" ( (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x18)" ( (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 0x10)" ( (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar2 >> 8)" ( (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }" if (parenthesized_expression "(param_2[0x10] == 1)" ( (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }" { (expression_statement "param_6[0x20] = SUB81(dVar2,0);" (assignment_expression "param_6[0x20] = SUB81(dVar2,0)" (subscript_expression "param_6[0x20]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0x24] = bVar11;" (assignment_expression "param_6[0x24] = bVar11" (subscript_expression "param_6[0x24]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x21] = local_8c;" (assignment_expression "param_6[0x21] = local_8c" (subscript_expression "param_6[0x21]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x22] = local_6c;" (assignment_expression "param_6[0x22] = local_6c" (subscript_expression "param_6[0x22]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x23] = local_74;" (assignment_expression "param_6[0x23] = local_74" (subscript_expression "param_6[0x23]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x25] = bVar10;" (assignment_expression "param_6[0x25] = bVar10" (subscript_expression "param_6[0x25]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x26] = local_7c;" (assignment_expression "param_6[0x26] = local_7c" (subscript_expression "param_6[0x26]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x27] = local_84;" (assignment_expression "param_6[0x27] = local_84" (subscript_expression "param_6[0x27]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }" else (compound_statement "{\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }" { (expression_statement "param_6[0x23] = bVar11;" (assignment_expression "param_6[0x23] = bVar11" (subscript_expression "param_6[0x23]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x27] = SUB81(dVar2,0);" (assignment_expression "param_6[0x27] = SUB81(dVar2,0)" (subscript_expression "param_6[0x27]" identifier [ number_literal ]) = (call_expression "SUB81(dVar2,0)" identifier (argument_list "(dVar2,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0x20] = local_84;" (assignment_expression "param_6[0x20] = local_84" (subscript_expression "param_6[0x20]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x21] = local_7c;" (assignment_expression "param_6[0x21] = local_7c" (subscript_expression "param_6[0x21]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x22] = bVar10;" (assignment_expression "param_6[0x22] = bVar10" (subscript_expression "param_6[0x22]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x24] = local_74;" (assignment_expression "param_6[0x24] = local_74" (subscript_expression "param_6[0x24]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x25] = local_6c;" (assignment_expression "param_6[0x25] = local_6c" (subscript_expression "param_6[0x25]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x26] = local_8c;" (assignment_expression "param_6[0x26] = local_8c" (subscript_expression "param_6[0x26]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[9] + 0x28;" (assignment_expression "param_6 = param_6 + param_2[9] + 0x28" identifier = (binary_expression "param_6 + param_2[9] + 0x28" (binary_expression "param_6 + param_2[9]" identifier + (subscript_expression "param_2[9]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "param_5 + *(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))) ;) }) while (parenthesized_expression "(local_64 != param_3)" ( (binary_expression "local_64 != param_3" identifier != identifier) )) ;) (return_statement "return;" return ;) })) }))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (if_statement "if (uVar16 < 0x41) {\n    uVar9 = uVar16;\n  }" if (parenthesized_expression "(uVar16 < 0x41)" ( (binary_expression "uVar16 < 0x41" identifier < number_literal) )) (compound_statement "{\n    uVar9 = uVar16;\n  }" { (expression_statement "uVar9 = uVar16;" (assignment_expression "uVar9 = uVar16" identifier = identifier) ;) })) (expression_statement "bVar10 = (byte)(uVar9 - 1);" (assignment_expression "bVar10 = (byte)(uVar9 - 1)" identifier = (call_expression "(byte)(uVar9 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar9 - 1)" ( (binary_expression "uVar9 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar11 = bVar10 & 0x1f;" (assignment_expression "bVar11 = bVar10 & 0x1f" identifier = (binary_expression "bVar10 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar7 = 2 << (bVar10 & 0x1f);" (assignment_expression "uVar7 = 2 << (bVar10 & 0x1f)" identifier = (binary_expression "2 << (bVar10 & 0x1f)" number_literal << (parenthesized_expression "(bVar10 & 0x1f)" ( (binary_expression "bVar10 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" identifier = identifier) ;) (expression_statement "uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11;" (assignment_expression "uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11" identifier = (binary_expression "0 << bVar11 | 2U >> 0x20 - bVar11" (binary_expression "0 << bVar11" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar11" number_literal >> (binary_expression "0x20 - bVar11" number_literal - identifier)))) ;) (if_statement "if ((uVar9 - 1 & 0x20) != 0) {\n    uVar8 = 0;\n    uVar18 = uVar7;\n  }" if (parenthesized_expression "((uVar9 - 1 & 0x20) != 0)" ( (binary_expression "(uVar9 - 1 & 0x20) != 0" (parenthesized_expression "(uVar9 - 1 & 0x20)" ( (binary_expression "uVar9 - 1 & 0x20" (binary_expression "uVar9 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar8 = 0;\n    uVar18 = uVar7;\n  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar7;" (assignment_expression "uVar18 = uVar7" identifier = identifier) ;) })) (expression_statement "local_4c = uVar8 - 1;" (assignment_expression "local_4c = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0);" (assignment_expression "iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0)" identifier = (binary_expression "(uVar18 - 1) + (uint)(uVar8 != 0)" (parenthesized_expression "(uVar18 - 1)" ( (binary_expression "uVar18 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar8 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) ))))) ;) (labeled_statement "LAB_0013be09:\n  if (param_3 < 1) {\n    return;\n  }" statement_identifier : (if_statement "if (param_3 < 1) {\n    return;\n  }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (do_statement "do {\n    local_5c = 0;\n    iVar13 = *(int *)(param_1 + 0x2a8);\n    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);\n    if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar9 = param_2[0x14];\n    if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }\n    while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n    param_6 = param_6 + param_2[9];\n    if (local_40 == param_3) {\n      return;\n    }\n    uVar16 = *param_2;\n  } while( true );" do (compound_statement "{\n    local_5c = 0;\n    iVar13 = *(int *)(param_1 + 0x2a8);\n    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);\n    if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar9 = param_2[0x14];\n    if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }\n    while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n    param_6 = param_6 + param_2[9];\n    if (local_40 == param_3) {\n      return;\n    }\n    uVar16 = *param_2;\n  }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 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) ))))) ;) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 8) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar13 + 8) * 8)" ( (binary_expression "param_5 + *(int *)(iVar13 + 8) * 8" identifier + (binary_expression "*(int *)(iVar13 + 8) * 8" (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 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_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar2) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar2)" ( (binary_expression "(double)fVar1 * dVar2" (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 (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }" if (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" ( (binary_expression "dVar2 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }" { (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" identifier = (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" ( (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" identifier (argument_list "(dVar2 - (double)DAT_0029f134)" ( (binary_expression "dVar2 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (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) ))) + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n          local_5c = (longlong)ROUND(dVar2);\n        }" else (compound_statement "{\n          local_5c = (longlong)ROUND(dVar2);\n        }" { (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" identifier = (cast_expression "(longlong)ROUND(dVar2)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" identifier = (subscript_expression "param_2[0x14]" identifier [ number_literal ])) ;) (if_statement "if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }" { (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) })) (if_statement "if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 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      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }" { (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x14) * 8)" ( (binary_expression "param_5 + *(int *)(iVar13 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (!NAN(dVar2)) goto LAB_0013bffe;" if (parenthesized_expression "(!NAN(dVar2))" ( (unary_expression "!NAN(dVar2)" ! (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))) )) (goto_statement "goto LAB_0013bffe;" goto statement_identifier ;)) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);" do (compound_statement "{\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      }" { (while_statement "while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }" { (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }" if (parenthesized_expression "(uVar16 <= uVar9)" ( (binary_expression "uVar16 <= uVar9" identifier <= identifier) )) (compound_statement "{\n            uVar18 = uVar16;\n          }" { (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar8 = uVar16 - uVar18;" (assignment_expression "uVar8 = uVar16 - uVar18" identifier = (binary_expression "uVar16 - uVar18" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }" if (parenthesized_expression "(-1 < (int)uVar8)" ( (binary_expression "-1 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar16 = uVar8;\n          }" { (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" identifier = identifier) ;) })) (if_statement "if (uVar9 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar9 == 8)" ( (binary_expression "uVar9 == 8" identifier == number_literal) )) (compound_statement "{\n            *param_6 = 0;\n          }" { (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) })) (expression_statement "uVar9 = uVar9 - uVar18;" (assignment_expression "uVar9 = uVar9 - uVar18" identifier = (binary_expression "uVar9 - uVar18" identifier - identifier)) ;) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" identifier = (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar11" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._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            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" { (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._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 "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7)" ( (binary_expression "~(-1 << ((byte)uVar18 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar18 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar18 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar18 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar18 & 0x1f)" ( (binary_expression "(byte)uVar18 & 0x1f" (cast_expression "(byte)uVar18" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar9 & 0x1f)" ( (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }" if (parenthesized_expression "((uVar9 & 0x20) != 0)" ( (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" ( (binary_expression "uVar9 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar11 = 0;\n          }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" * identifier) = (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" * identifier) | identifier)) ;) (if_statement "if (uVar9 != 0) break;" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" identifier = (binary_expression "param_6 + 1" identifier + number_literal)) ;) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar8 < 1) goto LAB_0013bfd2;" if (parenthesized_expression "((int)uVar8 < 1)" ( (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013bfd2;" goto statement_identifier ;)) })) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" identifier = (subscript_expression "param_2[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);" statement_identifier : (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) ))))) ;)) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x14) * 8)" ( (binary_expression "param_5 + *(int *)(iVar13 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" * (cast_expression "(int *)(iVar13 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x14)" ( (binary_expression "iVar13 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(NAN(dVar2))" ( (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))) )) (compound_statement "{\n        local_5c = 0;\n      }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" else (compound_statement "{\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013bffe:\n        local_5c = 0;" statement_identifier : (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 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_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar2) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar2)" ( (binary_expression "(double)fVar1 * dVar2" (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 (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" ( (binary_expression "dVar2 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" { (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" identifier = (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" ( (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" identifier (argument_list "(dVar2 - (double)DAT_0029f134)" ( (binary_expression "dVar2 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (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) ))) + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" else (compound_statement "{\n              local_5c = (longlong)ROUND(dVar2);\n            }" { (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" identifier = (cast_expression "(longlong)ROUND(dVar2)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" { (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 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      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }" { (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x20) * 8)" ( (binary_expression "param_5 + *(int *)(iVar13 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (!NAN(dVar2)) goto LAB_0013c1b8;" if (parenthesized_expression "(!NAN(dVar2))" ( (unary_expression "!NAN(dVar2)" ! (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier )))) )) (goto_statement "goto LAB_0013c1b8;" goto statement_identifier ;)) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);" do (compound_statement "{\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      }" { (while_statement "while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }" { (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }" if (parenthesized_expression "(uVar16 <= uVar9)" ( (binary_expression "uVar16 <= uVar9" identifier <= identifier) )) (compound_statement "{\n            uVar18 = uVar16;\n          }" { (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar8 = uVar16 - uVar18;" (assignment_expression "uVar8 = uVar16 - uVar18" identifier = (binary_expression "uVar16 - uVar18" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }" if (parenthesized_expression "(-1 < (int)uVar8)" ( (binary_expression "-1 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar16 = uVar8;\n          }" { (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" identifier = identifier) ;) })) (if_statement "if (uVar9 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar9 == 8)" ( (binary_expression "uVar9 == 8" identifier == number_literal) )) (compound_statement "{\n            *param_6 = 0;\n          }" { (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) })) (expression_statement "uVar9 = uVar9 - uVar18;" (assignment_expression "uVar9 = uVar9 - uVar18" identifier = (binary_expression "uVar9 - uVar18" identifier - identifier)) ;) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" identifier = (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar11" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._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            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" { (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._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 "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7)" ( (binary_expression "~(-1 << ((byte)uVar18 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar18 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar18 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar18 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar18 & 0x1f)" ( (binary_expression "(byte)uVar18 & 0x1f" (cast_expression "(byte)uVar18" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar9 & 0x1f)" ( (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }" if (parenthesized_expression "((uVar9 & 0x20) != 0)" ( (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" ( (binary_expression "uVar9 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar11 = 0;\n          }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" * identifier) = (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" * identifier) | identifier)) ;) (if_statement "if (uVar9 != 0) break;" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" identifier = (binary_expression "param_6 + 1" identifier + number_literal)) ;) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar8 < 1) goto LAB_0013c18c;" if (parenthesized_expression "((int)uVar8 < 1)" ( (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013c18c;" goto statement_identifier ;)) })) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" identifier = (subscript_expression "param_2[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);" statement_identifier : (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) ))))) ;)) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x20) * 8)" ( (binary_expression "param_5 + *(int *)(iVar13 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" * (cast_expression "(int *)(iVar13 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(NAN(dVar2))" ( (call_expression "NAN(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))) )) (compound_statement "{\n        local_5c = 0;\n      }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" else (compound_statement "{\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013c1b8:\n        local_5c = 0;" statement_identifier : (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" if (parenthesized_expression "(0.0 < dVar2)" ( (binary_expression "0.0 < dVar2" number_literal < identifier) )) (compound_statement "{\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 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_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar2) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar2)" ( (binary_expression "(double)fVar1 * dVar2" (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 (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" ( (binary_expression "dVar2 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" { (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" identifier = (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" ( (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" identifier (argument_list "(dVar2 - (double)DAT_0029f134)" ( (binary_expression "dVar2 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (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) ))) + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" else (compound_statement "{\n              local_5c = (longlong)ROUND(dVar2);\n            }" { (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" identifier = (cast_expression "(longlong)ROUND(dVar2)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" { (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 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_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;" if (parenthesized_expression "(*(int *)(iVar13 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar13 + 0x28) != 0" (pointer_expression "*(int *)(iVar13 + 0x28)" * (cast_expression "(int *)(iVar13 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x28)" ( (binary_expression "iVar13 + 0x28" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0013c36e;" goto statement_identifier ;)) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);" do (compound_statement "{\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      }" { (while_statement "while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }" { (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }" if (parenthesized_expression "(uVar16 <= uVar9)" ( (binary_expression "uVar16 <= uVar9" identifier <= identifier) )) (compound_statement "{\n            uVar18 = uVar16;\n          }" { (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar8 = uVar16 - uVar18;" (assignment_expression "uVar8 = uVar16 - uVar18" identifier = (binary_expression "uVar16 - uVar18" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }" if (parenthesized_expression "(-1 < (int)uVar8)" ( (binary_expression "-1 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar16 = uVar8;\n          }" { (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" identifier = identifier) ;) })) (if_statement "if (uVar9 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar9 == 8)" ( (binary_expression "uVar9 == 8" identifier == number_literal) )) (compound_statement "{\n            *param_6 = 0;\n          }" { (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) })) (expression_statement "uVar9 = uVar9 - uVar18;" (assignment_expression "uVar9 = uVar9 - uVar18" identifier = (binary_expression "uVar9 - uVar18" identifier - identifier)) ;) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" identifier = (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar11" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._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            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" { (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._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 "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7)" ( (binary_expression "~(-1 << ((byte)uVar18 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar18 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar18 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar18 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar18 & 0x1f)" ( (binary_expression "(byte)uVar18 & 0x1f" (cast_expression "(byte)uVar18" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar9 & 0x1f)" ( (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }" if (parenthesized_expression "((uVar9 & 0x20) != 0)" ( (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" ( (binary_expression "uVar9 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar11 = 0;\n          }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" * identifier) = (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" * identifier) | identifier)) ;) (if_statement "if (uVar9 != 0) break;" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" identifier = (binary_expression "param_6 + 1" identifier + number_literal)) ;) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar8 < 1) goto LAB_0013c33c;" if (parenthesized_expression "((int)uVar8 < 1)" ( (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013c33c;" goto statement_identifier ;)) })) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" identifier = (subscript_expression "param_2[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0013c33c:\n      local_5c = 0;" statement_identifier : (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 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) ))))) ;) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar13 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar13 + 0x28) != 0" (pointer_expression "*(int *)(iVar13 + 0x28)" * (cast_expression "(int *)(iVar13 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x28)" ( (binary_expression "iVar13 + 0x28" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);" statement_identifier : (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x2c) * 8)" ( (binary_expression "param_5 + *(int *)(iVar13 + 0x2c) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x2c) * 8" (pointer_expression "*(int *)(iVar13 + 0x2c)" * (cast_expression "(int *)(iVar13 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x2c)" ( (binary_expression "iVar13 + 0x2c" identifier + number_literal) )))) * number_literal)) ))))) ;)) (if_statement "if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" if (parenthesized_expression "(dVar2 <= 0.0)" ( (binary_expression "dVar2 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          local_5c = 0;\n        }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" else (compound_statement "{\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 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_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar2) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar2)" ( (binary_expression "(double)fVar1 * dVar2" (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 (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" if (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" ( (binary_expression "dVar2 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" { (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" identifier = (binary_expression "dVar2 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" ( (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }" { (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" identifier (argument_list "(dVar2 - (double)DAT_0029f134)" ( (binary_expression "dVar2 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" identifier (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (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) ))) + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" else (compound_statement "{\n              local_5c = (longlong)ROUND(dVar2);\n            }" { (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" identifier = (cast_expression "(longlong)ROUND(dVar2)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar2)" identifier (argument_list "(dVar2)" ( identifier ))))) ;) }))) })) }))) })) (if_statement "if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" { (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 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_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) (if_statement "if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;" if (parenthesized_expression "(*(int *)(iVar13 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar13 + 0x34) == 4" (pointer_expression "*(int *)(iVar13 + 0x34)" * (cast_expression "(int *)(iVar13 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x34)" ( (binary_expression "iVar13 + 0x34" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0013ccd8;" goto statement_identifier ;)) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);" do (compound_statement "{\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      }" { (while_statement "while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }" { (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }" if (parenthesized_expression "(uVar16 <= uVar9)" ( (binary_expression "uVar16 <= uVar9" identifier <= identifier) )) (compound_statement "{\n            uVar18 = uVar16;\n          }" { (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar8 = uVar16 - uVar18;" (assignment_expression "uVar8 = uVar16 - uVar18" identifier = (binary_expression "uVar16 - uVar18" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }" if (parenthesized_expression "(-1 < (int)uVar8)" ( (binary_expression "-1 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar16 = uVar8;\n          }" { (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" identifier = identifier) ;) })) (if_statement "if (uVar9 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar9 == 8)" ( (binary_expression "uVar9 == 8" identifier == number_literal) )) (compound_statement "{\n            *param_6 = 0;\n          }" { (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) })) (expression_statement "uVar9 = uVar9 - uVar18;" (assignment_expression "uVar9 = uVar9 - uVar18" identifier = (binary_expression "uVar9 - uVar18" identifier - identifier)) ;) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" identifier = (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar11" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._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            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" { (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._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 "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7)" ( (binary_expression "~(-1 << ((byte)uVar18 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar18 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar18 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar18 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar18 & 0x1f)" ( (binary_expression "(byte)uVar18 & 0x1f" (cast_expression "(byte)uVar18" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar9 & 0x1f)" ( (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }" if (parenthesized_expression "((uVar9 & 0x20) != 0)" ( (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" ( (binary_expression "uVar9 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar11 = 0;\n          }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" * identifier) = (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" * identifier) | identifier)) ;) (if_statement "if (uVar9 != 0) break;" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" identifier = (binary_expression "param_6 + 1" identifier + number_literal)) ;) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar8 < 1) goto LAB_0013c4f4;" if (parenthesized_expression "((int)uVar8 < 1)" ( (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0013c4f4;" goto statement_identifier ;)) })) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" identifier = (subscript_expression "param_2[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0013c4f4:\n      local_5c = 0;" statement_identifier : (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 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) ))))) ;) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar13 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar13 + 0x34) == 4" (pointer_expression "*(int *)(iVar13 + 0x34)" * (cast_expression "(int *)(iVar13 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x34)" ( (binary_expression "iVar13 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }" { (labeled_statement "LAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);" statement_identifier : (expression_statement "fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);" (assignment_expression "fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" * (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x38) * 8)" ( (binary_expression "param_5 + *(int *)(iVar13 + 0x38) * 8" identifier + (binary_expression "*(int *)(iVar13 + 0x38) * 8" (pointer_expression "*(int *)(iVar13 + 0x38)" * (cast_expression "(int *)(iVar13 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x38)" ( (binary_expression "iVar13 + 0x38" identifier + number_literal) )))) * number_literal)) ))))))) ;)) (if_statement "if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }" if (parenthesized_expression "(fVar1 <= 0.0)" ( (binary_expression "fVar1 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          local_5c = 0;\n        }" { (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }" else (compound_statement "{\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }" { (expression_statement "fVar4 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar4 = (float)CONCAT44(iStack_48,local_4c)" identifier = (cast_expression "(float)CONCAT44(iStack_48,local_4c)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_48,local_4c)" identifier (argument_list "(iStack_48,local_4c)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }" if (parenthesized_expression "(iStack_48 < 0)" ( (binary_expression "iStack_48 < 0" identifier < number_literal) )) (compound_statement "{\n            fVar4 = fVar4 + DAT_0029f714;\n          }" { (expression_statement "fVar4 = fVar4 + DAT_0029f714;" (assignment_expression "fVar4 = fVar4 + DAT_0029f714" identifier = (binary_expression "fVar4 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_5c = -1;" (assignment_expression "local_5c = -1" identifier = number_literal) ;) (expression_statement "fVar1 = (fVar4 * fVar1) / DAT_0029f710;" (assignment_expression "fVar1 = (fVar4 * fVar1) / DAT_0029f710" identifier = (binary_expression "(fVar4 * fVar1) / DAT_0029f710" (parenthesized_expression "(fVar4 * fVar1)" ( (binary_expression "fVar4 * fVar1" identifier * identifier) )) / identifier)) ;) (if_statement "if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (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              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (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              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }" if (parenthesized_expression "(DAT_0029f134 <= fVar1)" ( (binary_expression "DAT_0029f134 <= fVar1" identifier <= identifier) )) (compound_statement "{\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }" { (expression_statement "local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134))" identifier = (call_expression "CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134))" identifier (argument_list "((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134))" ( (binary_expression "(int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000" (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) ))) + 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_5c = (longlong)ROUND(fVar1);\n            }" else (compound_statement "{\n              local_5c = (longlong)ROUND(fVar1);\n            }" { (expression_statement "local_5c = (longlong)ROUND(fVar1);" (assignment_expression "local_5c = (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 "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" identifier = identifier) ;) (if_statement "if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        param_2[0x14] = 8;\n      }" { (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) })) }))) (while_statement "while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }" while (parenthesized_expression "(0 < (int)uVar18)" ( (binary_expression "0 < (int)uVar18" number_literal < (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }" { (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" identifier = (subscript_expression "param_2[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }" if (parenthesized_expression "(uVar16 <= uVar9)" ( (binary_expression "uVar16 <= uVar9" identifier <= identifier) )) (compound_statement "{\n        uVar8 = uVar16;\n      }" { (expression_statement "uVar8 = uVar16;" (assignment_expression "uVar8 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar18 = uVar16 - uVar8;" (assignment_expression "uVar18 = uVar16 - uVar8" identifier = (binary_expression "uVar16 - uVar8" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }" if (parenthesized_expression "(-1 < (int)uVar18)" ( (binary_expression "-1 < (int)uVar18" number_literal < (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar16 = uVar18;\n      }" { (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" identifier = identifier) ;) })) (if_statement "if (uVar9 == 8) {\n        *param_6 = 0;\n      }" if (parenthesized_expression "(uVar9 == 8)" ( (binary_expression "uVar9 == 8" identifier == number_literal) )) (compound_statement "{\n        *param_6 = 0;\n      }" { (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) })) (expression_statement "uVar9 = uVar9 - uVar8;" (assignment_expression "uVar9 = uVar9 - uVar8" identifier = (binary_expression "uVar9 - uVar8" identifier - identifier)) ;) (expression_statement "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" identifier = (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar11" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._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        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }" { (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._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 "bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar8 & 0x1f)) & uVar7)" ( (binary_expression "~(-1 << ((byte)uVar8 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar8 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar8 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar8 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar9 & 0x1f)" ( (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }" if (parenthesized_expression "((uVar9 & 0x20) != 0)" ( (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" ( (binary_expression "uVar9 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        bVar11 = 0;\n      }" { (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" * identifier) = (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" * identifier) | identifier)) ;) (if_statement "if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }" { (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" identifier = (binary_expression "param_6 + 1" identifier + number_literal)) ;) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "param_5 + *(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_6 = param_6 + param_2[9];" (assignment_expression "param_6 = param_6 + param_2[9]" identifier = (binary_expression "param_6 + param_2[9]" identifier + (subscript_expression "param_2[9]" identifier [ number_literal ]))) ;) (if_statement "if (local_40 == param_3) {\n      return;\n    }" if (parenthesized_expression "(local_40 == param_3)" ( (binary_expression "local_40 == param_3" identifier == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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) ))) ;) (return_statement return ;) })) (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 IDENT < LIT) )) (compound_statement { (return_statement return ;) })) (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 = (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 (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 ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (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 (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 ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = 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 (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 ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (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 (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 ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + 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))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return ;) })) (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)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (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) )))) ;) }))) (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 (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (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) )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (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) )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (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) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (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 IDENT + LIT) )))) * LIT)) ))))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (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) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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 { (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) )))) ;) }))) (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 (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (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 (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + 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 == IDENT) )) (compound_statement { (return_statement return ;) })) }) while (parenthesized_expression ( BOOL )) ;) })) (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 IDENT < LIT) )) (compound_statement { (return_statement return ;) })) (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 (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 (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) )) ;) (return_statement return ;) })) (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 IDENT < LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_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) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (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) = (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 (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 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) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (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 (subscript_expression IDENT [ LIT ]) = (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 (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 ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }))) (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) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (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 (subscript_expression IDENT [ LIT ]) = (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 (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 ]) = (call_expression IDENT (argument_list ( 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 = 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) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (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 (subscript_expression IDENT [ LIT ]) = (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 (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 ]) = (call_expression IDENT (argument_list ( 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 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) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (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 (subscript_expression IDENT [ LIT ]) = (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 (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 ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return ;) })) (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)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (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 IDENT = 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 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 (subscript_expression IDENT [ LIT ]) == LIT) )) (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 ]) = 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 ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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) ;) (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 IDENT = 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 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 (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 ]) = 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 ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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) ;) (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 IDENT = 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 IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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) )))) ;) }))) }))) (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 ]) = 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 ]) = IDENT) ;) }))) (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) ;) (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 IDENT = 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 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 (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 ]) = 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 ]) = IDENT) ;) }))) (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 IDENT <= LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (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) ;) (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) )))) ;) (expression_statement (assignment_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) )))) ;) (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 (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) ;) }) (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 ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (return_statement return ;) })) (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 IDENT < LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_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)) )))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (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 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) = (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 ]) = 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 (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 ]) = 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 ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (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)) )))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (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 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 (subscript_expression IDENT [ LIT ]) = (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 ]) = 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 (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 ]) = 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 ]) = IDENT) ;) }))) (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)) )))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (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 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 (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 ]) = 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 ]) = 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 ]) = (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 ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = 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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (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 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 (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 ]) = 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 ]) = IDENT) ;) }) (else_clause else (compound_statement { (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 ]) = 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 ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (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 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 (subscript_expression IDENT [ LIT ]) = (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 ]) = 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 (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 ]) = 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 ]) = 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 (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (return_statement return ;) })) }))) (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) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return ;) }))) (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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (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 = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + 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 { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (call_expression IDENT (argument_list ( IDENT )))) )) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (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 < 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 = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + 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 + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (call_expression IDENT (argument_list ( IDENT )))) )) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (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 < 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 = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + 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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) }) (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 = LIT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;)) (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 = (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 = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + 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 = LIT) ;) (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) )) (goto_statement goto statement_identifier ;)) }) (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 = LIT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 { (labeled_statement statement_identifier : (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 IDENT + LIT) )))) * LIT)) ))))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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 = (call_expression IDENT (argument_list ( (binary_expression (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) ))) + 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 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 + 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 IDENT + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void __regparm2\nFUN_0013bd70(int param_1,uint *param_2,int param_3,undefined4 param_4,int param_5,byte *param_6,\n            undefined4 param_7)\n\n{\n  float fVar1;\n  double dVar2;\n  longlong lVar3;\n  float fVar4;\n  double dVar5;\n  undefined2 uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte bVar10;\n  byte bVar11;\n  byte bVar12;\n  int iVar13;\n  byte bVar14;\n  int iVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  byte local_8c;\n  byte local_84;\n  byte local_7c;\n  byte local_74;\n  byte local_6c;\n  int local_64;\n  undefined8 local_5c;\n  int local_4c;\n  int iStack_48;\n  int local_40;\n  byte local_34;\n  \n  dVar5 = DAT_002a8000;\n  dVar2 = _DAT_0029f148;\n  if (*(int *)(param_1 + 4) != 2) {\n    ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n    return;\n  }\n  uVar16 = *param_2;\n  if (uVar16 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (param_3 < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar16 < 0x11) {\n    if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar16 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }\n  uVar9 = 0;\n  if (uVar16 < 0x41) {\n    uVar9 = uVar16;\n  }\n  bVar10 = (byte)(uVar9 - 1);\n  bVar11 = bVar10 & 0x1f;\n  uVar7 = 2 << (bVar10 & 0x1f);\n  uVar8 = uVar7;\n  uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11;\n  if ((uVar9 - 1 & 0x20) != 0) {\n    uVar8 = 0;\n    uVar18 = uVar7;\n  }\n  local_4c = uVar8 - 1;\n  iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0);\nLAB_0013be09:\n  if (param_3 < 1) {\n    return;\n  }\n  local_40 = 0;\n  do {\n    local_5c = 0;\n    iVar13 = *(int *)(param_1 + 0x2a8);\n    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);\n    if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar9 = param_2[0x14];\n    if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }\n    while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n    param_6 = param_6 + param_2[9];\n    if (local_40 == param_3) {\n      return;\n    }\n    uVar16 = *param_2;\n  } while( true );\n}" (primitive_type "void") (ERROR "__regparm2" (identifier "__regparm2")) (function_declarator "FUN_0013bd70(int param_1,uint *param_2,int param_3,undefined4 param_4,int param_5,byte *param_6,\n            undefined4 param_7)" (identifier "FUN_0013bd70") (parameter_list "(int param_1,uint *param_2,int param_3,undefined4 param_4,int param_5,byte *param_6,\n            undefined4 param_7)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "byte *param_6" (type_identifier "byte") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) () ")"))) (compound_statement "{\n  float fVar1;\n  double dVar2;\n  longlong lVar3;\n  float fVar4;\n  double dVar5;\n  undefined2 uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte bVar10;\n  byte bVar11;\n  byte bVar12;\n  int iVar13;\n  byte bVar14;\n  int iVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  byte local_8c;\n  byte local_84;\n  byte local_7c;\n  byte local_74;\n  byte local_6c;\n  int local_64;\n  undefined8 local_5c;\n  int local_4c;\n  int iStack_48;\n  int local_40;\n  byte local_34;\n  \n  dVar5 = DAT_002a8000;\n  dVar2 = _DAT_0029f148;\n  if (*(int *)(param_1 + 4) != 2) {\n    ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n    return;\n  }\n  uVar16 = *param_2;\n  if (uVar16 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (param_3 < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar16 < 0x11) {\n    if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar16 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }\n  uVar9 = 0;\n  if (uVar16 < 0x41) {\n    uVar9 = uVar16;\n  }\n  bVar10 = (byte)(uVar9 - 1);\n  bVar11 = bVar10 & 0x1f;\n  uVar7 = 2 << (bVar10 & 0x1f);\n  uVar8 = uVar7;\n  uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11;\n  if ((uVar9 - 1 & 0x20) != 0) {\n    uVar8 = 0;\n    uVar18 = uVar7;\n  }\n  local_4c = uVar8 - 1;\n  iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0);\nLAB_0013be09:\n  if (param_3 < 1) {\n    return;\n  }\n  local_40 = 0;\n  do {\n    local_5c = 0;\n    iVar13 = *(int *)(param_1 + 0x2a8);\n    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);\n    if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar9 = param_2[0x14];\n    if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }\n    while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n    param_6 = param_6 + param_2[9];\n    if (local_40 == param_3) {\n      return;\n    }\n    uVar16 = *param_2;\n  } while( true );\n}" ({ "{") (declaration "float fVar1;" (primitive_type "float") (identifier "fVar1") (; ";")) (declaration "double dVar2;" (primitive_type "double") (identifier "dVar2") (; ";")) (declaration "longlong lVar3;" (type_identifier "longlong") (identifier "lVar3") (; ";")) (declaration "float fVar4;" (primitive_type "float") (identifier "fVar4") (; ";")) (declaration "double dVar5;" (primitive_type "double") (identifier "dVar5") (; ";")) (declaration "undefined2 uVar6;" (type_identifier "undefined2") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "byte bVar11;" (type_identifier "byte") (identifier "bVar11") (; ";")) (declaration "byte bVar12;" (type_identifier "byte") (identifier "bVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "byte local_8c;" (type_identifier "byte") (identifier "local_8c") (; ";")) (declaration "byte local_84;" (type_identifier "byte") (identifier "local_84") (; ";")) (declaration "byte local_7c;" (type_identifier "byte") (identifier "local_7c") (; ";")) (declaration "byte local_74;" (type_identifier "byte") (identifier "local_74") (; ";")) (declaration "byte local_6c;" (type_identifier "byte") (identifier "local_6c") (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "undefined8 local_5c;" (type_identifier "undefined8") (identifier "local_5c") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "int iStack_48;" (primitive_type "int") (identifier "iStack_48") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "byte local_34;" (type_identifier "byte") (identifier "local_34") (; ";")) (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" (identifier "dVar5") (= "=") (identifier "DAT_002a8000")) (; ";")) (expression_statement "dVar2 = _DAT_0029f148;" (assignment_expression "dVar2 = _DAT_0029f148" (identifier "dVar2") (= "=") (identifier "_DAT_0029f148")) (; ";")) (if_statement "if (*(int *)(param_1 + 4) != 2) {\n    ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n    return;\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_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n    return;\n  }" ({ "{") (expression_statement "ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);" (call_expression "ThrowMagickException\n              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318)" (identifier "ThrowMagickException") (argument_list "(param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,\n               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318)" (( "(") (identifier "param_7") (, ",") (string_literal ""MagickCore/quantum-export.c"" (" """) (string_content "MagickCore/quantum-export.c") (" """)) (, ",") (string_literal ""ExportCMYKOQuantum"" (" """) (string_content "ExportCMYKOQuantum") (" """)) (, ",") (number_literal "0x6f7") (, ",") (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")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" (identifier "uVar16") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (uVar16 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (param_3 < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );\n  }" (if "if") (parenthesized_expression "(uVar16 == 0x10)" (( "(") (binary_expression "uVar16 == 0x10" (identifier "uVar16") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (param_3 < 1) {\n      return;\n    }\n    local_64 = 0;\n    do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );\n  }" ({ "{") (if_statement "if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" (if "if") (parenthesized_expression "(param_2[2] == 1)" (( "(") (binary_expression "param_2[2] == 1" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" ({ "{") (if_statement "if (param_3 < 1) {\n        return;\n      }" (if "if") (parenthesized_expression "(param_3 < 1)" (( "(") (binary_expression "param_3 < 1" (identifier "param_3") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);" (do "do") (compound_statement "{\n        uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }\n        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }\n        fVar1 = 0.0;\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }\n        uVar6 = FUN_00136290(fVar1);\n        bVar11 = (byte)((ushort)uVar6 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }\n        param_6 = param_6 + param_2[9] + 10;\n        local_64 = local_64 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      }" ({ "{") (expression_statement "uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));" (assignment_expression "uVar6 = FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)))" (identifier "uVar6") (= "=") (call_expression "FUN_00136290((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)))" (identifier "FUN_00136290") (argument_list "((float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)))" (( "(") (cast_expression "(float)((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8))" (( "(") (binary_expression "(longdouble)dVar2 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (binary_expression "(longdouble)dVar2 *\n                                    (longdouble)" (cast_expression "(longdouble)dVar2" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "dVar2")) (* "*") (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")"))) (* "*") (cast_expression "(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (identifier "param_5") (+ "+") (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 "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" (identifier "bVar11") (= "=") (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar6 >> 8)" (( "(") (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar6")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x10] == 1) {\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }\n        else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          *param_6 = (byte)uVar6;\n          param_6[1] = bVar11;\n        }" ({ "{") (expression_statement "*param_6 = (byte)uVar6;" (assignment_expression "*param_6 = (byte)uVar6" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6"))) (; ";")) (expression_statement "param_6[1] = bVar11;" (assignment_expression "param_6[1] = bVar11" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (} "}")) (else_clause "else {\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }" (else "else") (compound_statement "{\n          *param_6 = bVar11;\n          param_6[1] = (byte)uVar6;\n        }" ({ "{") (expression_statement "*param_6 = bVar11;" (assignment_expression "*param_6 = bVar11" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[1] = (byte)uVar6;" (assignment_expression "param_6[1] = (byte)uVar6" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6"))) (; ";")) (} "}")))) (expression_statement "uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));" (assignment_expression "uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" (identifier "uVar6") (= "=") (call_expression "FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" (identifier "FUN_00136290") (argument_list "((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" (( "(") (cast_expression "(float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8))" (( "(") (binary_expression "(longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (binary_expression "(longdouble)_DAT_0029f148 *\n                                    (longdouble)" (cast_expression "(longdouble)_DAT_0029f148" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "_DAT_0029f148")) (* "*") (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")"))) (* "*") (cast_expression "(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (identifier "param_5") (+ "+") (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 "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" (identifier "bVar11") (= "=") (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar6 >> 8)" (( "(") (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar6")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x10] == 1) {\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[2] = (byte)uVar6;\n          param_6[3] = bVar11;\n        }" ({ "{") (expression_statement "param_6[2] = (byte)uVar6;" (assignment_expression "param_6[2] = (byte)uVar6" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6"))) (; ";")) (expression_statement "param_6[3] = bVar11;" (assignment_expression "param_6[3] = bVar11" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (} "}")) (else_clause "else {\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }" (else "else") (compound_statement "{\n          param_6[2] = bVar11;\n          param_6[3] = (byte)uVar6;\n        }" ({ "{") (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[3] = (byte)uVar6;" (assignment_expression "param_6[3] = (byte)uVar6" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6"))) (; ";")) (} "}")))) (expression_statement "uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));" (assignment_expression "uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" (identifier "uVar6") (= "=") (call_expression "FUN_00136290((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" (identifier "FUN_00136290") (argument_list "((float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" (( "(") (cast_expression "(float)((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8))" (( "(") (binary_expression "(longdouble)_DAT_0029f148 *\n                                    (longdouble)\n                                    *(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (binary_expression "(longdouble)_DAT_0029f148 *\n                                    (longdouble)" (cast_expression "(longdouble)_DAT_0029f148" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "_DAT_0029f148")) (* "*") (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")"))) (* "*") (cast_expression "(double *)\n                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (identifier "param_5") (+ "+") (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 "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" (identifier "bVar11") (= "=") (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar6 >> 8)" (( "(") (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar6")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x10] == 1) {\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }\n        else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[4] = (byte)uVar6;\n          param_6[5] = bVar11;\n        }" ({ "{") (expression_statement "param_6[4] = (byte)uVar6;" (assignment_expression "param_6[4] = (byte)uVar6" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6"))) (; ";")) (expression_statement "param_6[5] = bVar11;" (assignment_expression "param_6[5] = bVar11" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (} "}")) (else_clause "else {\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }" (else "else") (compound_statement "{\n          param_6[5] = (byte)uVar6;\n          param_6[4] = bVar11;\n        }" ({ "{") (expression_statement "param_6[5] = (byte)uVar6;" (assignment_expression "param_6[5] = (byte)uVar6" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6"))) (; ";")) (expression_statement "param_6[4] = bVar11;" (assignment_expression "param_6[4] = bVar11" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (} "}")))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          fVar1 = 0.0;\n        }\n        else {\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(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)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }" (else "else") (compound_statement "{\n          fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n        }" ({ "{") (expression_statement "fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));" (assignment_expression "fVar1 = (float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" (identifier "fVar1") (= "=") (cast_expression "(float)((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" (( "(") (binary_expression "(longdouble)_DAT_0029f148 *\n                         (longdouble)\n                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (binary_expression "(longdouble)_DAT_0029f148 *\n                         (longdouble)" (cast_expression "(longdouble)_DAT_0029f148" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "_DAT_0029f148")) (* "*") (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")"))) (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (identifier "param_5") (+ "+") (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 "uVar6 = FUN_00136290(fVar1);" (assignment_expression "uVar6 = FUN_00136290(fVar1)" (identifier "uVar6") (= "=") (call_expression "FUN_00136290(fVar1)" (identifier "FUN_00136290") (argument_list "(fVar1)" (( "(") (identifier "fVar1") () ")")))) (; ";")) (expression_statement "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" (identifier "bVar11") (= "=") (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar6 >> 8)" (( "(") (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar6")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x10] == 1) {\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }\n        else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[6] = (byte)uVar6;\n          param_6[7] = bVar11;\n        }" ({ "{") (expression_statement "param_6[6] = (byte)uVar6;" (assignment_expression "param_6[6] = (byte)uVar6" (subscript_expression "param_6[6]" (identifier "param_6") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6"))) (; ";")) (expression_statement "param_6[7] = bVar11;" (assignment_expression "param_6[7] = bVar11" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (} "}")) (else_clause "else {\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }" (else "else") (compound_statement "{\n          param_6[6] = bVar11;\n          param_6[7] = (byte)uVar6;\n        }" ({ "{") (expression_statement "param_6[6] = bVar11;" (assignment_expression "param_6[6] = bVar11" (subscript_expression "param_6[6]" (identifier "param_6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[7] = (byte)uVar6;" (assignment_expression "param_6[7] = (byte)uVar6" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6"))) (; ";")) (} "}")))) (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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;\n        }" ({ "{") (expression_statement "fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148;" (assignment_expression "fVar1 = (DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148" (identifier "fVar1") (= "=") (binary_expression "(DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                  (float)_DAT_0029f148" (parenthesized_expression "(DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" (( "(") (binary_expression "DAT_0029f710 -\n                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "DAT_0029f710") (- "-") (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "param_5") (+ "+") (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)_DAT_0029f148" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "_DAT_0029f148")))) (; ";")) (} "}"))) (expression_statement "uVar6 = FUN_00136290(fVar1);" (assignment_expression "uVar6 = FUN_00136290(fVar1)" (identifier "uVar6") (= "=") (call_expression "FUN_00136290(fVar1)" (identifier "FUN_00136290") (argument_list "(fVar1)" (( "(") (identifier "fVar1") () ")")))) (; ";")) (expression_statement "bVar11 = (byte)((ushort)uVar6 >> 8);" (assignment_expression "bVar11 = (byte)((ushort)uVar6 >> 8)" (identifier "bVar11") (= "=") (call_expression "(byte)((ushort)uVar6 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar6 >> 8)" (( "(") (binary_expression "(ushort)uVar6 >> 8" (cast_expression "(ushort)uVar6" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar6")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x10] == 1) {\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }\n        else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[8] = (byte)uVar6;\n          param_6[9] = bVar11;\n        }" ({ "{") (expression_statement "param_6[8] = (byte)uVar6;" (assignment_expression "param_6[8] = (byte)uVar6" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6"))) (; ";")) (expression_statement "param_6[9] = bVar11;" (assignment_expression "param_6[9] = bVar11" (subscript_expression "param_6[9]" (identifier "param_6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (} "}")) (else_clause "else {\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }" (else "else") (compound_statement "{\n          param_6[8] = bVar11;\n          param_6[9] = (byte)uVar6;\n        }" ({ "{") (expression_statement "param_6[8] = bVar11;" (assignment_expression "param_6[8] = bVar11" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[9] = (byte)uVar6;" (assignment_expression "param_6[9] = (byte)uVar6" (subscript_expression "param_6[9]" (identifier "param_6") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6"))) (; ";")) (} "}")))) (expression_statement "param_6 = param_6 + param_2[9] + 10;" (assignment_expression "param_6 = param_6 + param_2[9] + 10" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[9] + 10" (binary_expression "param_6 + param_2[9]" (identifier "param_6") (+ "+") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "10"))) (; ";")) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" (identifier "local_64") (= "=") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x298) * 8" (identifier "param_5") (+ "+") (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")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_64 != param_3)" (( "(") (binary_expression "local_64 != param_3" (identifier "local_64") (!= "!=") (identifier "param_3")) () ")")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (param_3 < 1) {\n      return;\n    }" (if "if") (parenthesized_expression "(param_3 < 1)" (( "(") (binary_expression "param_3 < 1" (identifier "param_3") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    } while( true );" (do "do") (compound_statement "{\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }\n      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n      if (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }\n      local_64 = local_64 + 1;\n      param_6 = param_6 + param_2[9] + 10;\n      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      if (local_64 == param_3) {\n        return;\n      }\n    }" ({ "{") (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (identifier "param_5") (+ "+") (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 (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }" (if "if") (parenthesized_expression "(dVar2 <= 0.0)" (( "(") (binary_expression "dVar2 <= 0.0" (identifier "dVar2") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n        bVar11 = 0;\n        bVar12 = 0;\n        bVar10 = 0;\n        bVar14 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013caf0;\nLAB_0013cf50:\n        *param_6 = bVar11;\n        param_6[1] = bVar10;\n      }" ({ "{") (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" (identifier "bVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2[0x10] != 1) goto LAB_0013caf0;" (if "if") (parenthesized_expression "(param_2[0x10] != 1)" (( "(") (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_0013caf0;" (goto "goto") (statement_identifier "LAB_0013caf0") (; ";"))) (labeled_statement "LAB_0013cf50:\n        *param_6 = bVar11;" (statement_identifier "LAB_0013cf50") (: ":") (expression_statement "*param_6 = bVar11;" (assignment_expression "*param_6 = bVar11" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar11")) (; ";"))) (expression_statement "param_6[1] = bVar10;" (assignment_expression "param_6[1] = bVar10" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (} "}")) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }" (else "else") (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cf50;\nLAB_0013caf0:\n        *param_6 = bVar14;\n        param_6[1] = bVar12;\n      }" ({ "{") (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" (if "if") (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" (( "(") (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")) (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }" ({ "{") (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" (identifier "iVar13") (= "=") (number_literal "-1")) (; ";")) (expression_statement "bVar14 = 0xff;" (assignment_expression "bVar14 = 0xff" (identifier "bVar14") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" (else "else") (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" ({ "{") (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" (identifier "iVar13") (= "=") (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "bVar14 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar14 = (byte)((uint)iVar13 >> 8)" (identifier "bVar14") (= "=") (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)iVar13 >> 8)" (( "(") (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar13")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (} "}")))) (expression_statement "bVar12 = (byte)iVar13;" (assignment_expression "bVar12 = (byte)iVar13" (identifier "bVar12") (= "=") (cast_expression "(byte)iVar13" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar13"))) (; ";")) (expression_statement "bVar11 = bVar12;" (assignment_expression "bVar11 = bVar12" (identifier "bVar11") (= "=") (identifier "bVar12")) (; ";")) (expression_statement "bVar10 = bVar14;" (assignment_expression "bVar10 = bVar14" (identifier "bVar10") (= "=") (identifier "bVar14")) (; ";")) (if_statement "if (param_2[0x10] == 1) goto LAB_0013cf50;" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0013cf50;" (goto "goto") (statement_identifier "LAB_0013cf50") (; ";"))) (labeled_statement "LAB_0013caf0:\n        *param_6 = bVar14;" (statement_identifier "LAB_0013caf0") (: ":") (expression_statement "*param_6 = bVar14;" (assignment_expression "*param_6 = bVar14" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar14")) (; ";"))) (expression_statement "param_6[1] = bVar12;" (assignment_expression "param_6[1] = bVar12" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (} "}")))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (identifier "param_5") (+ "+") (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 (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }" (if "if") (parenthesized_expression "(dVar2 <= 0.0)" (( "(") (binary_expression "dVar2 <= 0.0" (identifier "dVar2") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cb64;\nLAB_0013cf28:\n        param_6[2] = bVar11;\n        param_6[3] = bVar12;\n      }" ({ "{") (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" (identifier "bVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2[0x10] != 1) goto LAB_0013cb64;" (if "if") (parenthesized_expression "(param_2[0x10] != 1)" (( "(") (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_0013cb64;" (goto "goto") (statement_identifier "LAB_0013cb64") (; ";"))) (labeled_statement "LAB_0013cf28:\n        param_6[2] = bVar11;" (statement_identifier "LAB_0013cf28") (: ":") (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar11")) (; ";"))) (expression_statement "param_6[3] = bVar12;" (assignment_expression "param_6[3] = bVar12" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (} "}")) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }" (else "else") (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf28;\nLAB_0013cb64:\n        param_6[3] = bVar10;\n        param_6[2] = bVar12;\n      }" ({ "{") (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" (if "if") (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" (( "(") (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")) (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }" ({ "{") (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" (identifier "iVar13") (= "=") (number_literal "-1")) (; ";")) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" (identifier "bVar12") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" (else "else") (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" ({ "{") (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" (identifier "iVar13") (= "=") (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "bVar12 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar12 = (byte)((uint)iVar13 >> 8)" (identifier "bVar12") (= "=") (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)iVar13 >> 8)" (( "(") (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar13")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (} "}")))) (expression_statement "bVar10 = (byte)iVar13;" (assignment_expression "bVar10 = (byte)iVar13" (identifier "bVar10") (= "=") (cast_expression "(byte)iVar13" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar13"))) (; ";")) (expression_statement "bVar11 = bVar10;" (assignment_expression "bVar11 = bVar10" (identifier "bVar11") (= "=") (identifier "bVar10")) (; ";")) (if_statement "if (param_2[0x10] == 1) goto LAB_0013cf28;" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0013cf28;" (goto "goto") (statement_identifier "LAB_0013cf28") (; ";"))) (labeled_statement "LAB_0013cb64:\n        param_6[3] = bVar10;" (statement_identifier "LAB_0013cb64") (: ":") (expression_statement "param_6[3] = bVar10;" (assignment_expression "param_6[3] = bVar10" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar10")) (; ";"))) (expression_statement "param_6[2] = bVar12;" (assignment_expression "param_6[2] = bVar12" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (} "}")))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (identifier "param_5") (+ "+") (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 (dVar2 <= 0.0) {\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }" (if "if") (parenthesized_expression "(dVar2 <= 0.0)" (( "(") (binary_expression "dVar2 <= 0.0" (identifier "dVar2") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n        bVar11 = 0;\n        bVar10 = 0;\n        bVar12 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013cbe0;\nLAB_0013cf00:\n        param_6[4] = bVar11;\n        param_6[5] = bVar12;\n      }" ({ "{") (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" (identifier "bVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2[0x10] != 1) goto LAB_0013cbe0;" (if "if") (parenthesized_expression "(param_2[0x10] != 1)" (( "(") (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_0013cbe0;" (goto "goto") (statement_identifier "LAB_0013cbe0") (; ";"))) (labeled_statement "LAB_0013cf00:\n        param_6[4] = bVar11;" (statement_identifier "LAB_0013cf00") (: ":") (expression_statement "param_6[4] = bVar11;" (assignment_expression "param_6[4] = bVar11" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar11")) (; ";"))) (expression_statement "param_6[5] = bVar12;" (assignment_expression "param_6[5] = bVar12" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (} "}")) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }" (else "else") (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar10 = (byte)iVar13;\n        bVar11 = bVar10;\n        if (param_2[0x10] == 1) goto LAB_0013cf00;\nLAB_0013cbe0:\n        param_6[4] = bVar12;\n        param_6[5] = bVar10;\n      }" ({ "{") (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" (if "if") (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" (( "(") (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")) (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n          iVar13 = -1;\n          bVar12 = 0xff;\n        }" ({ "{") (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" (identifier "iVar13") (= "=") (number_literal "-1")) (; ";")) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" (identifier "bVar12") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" (else "else") (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar12 = (byte)((uint)iVar13 >> 8);\n        }" ({ "{") (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" (identifier "iVar13") (= "=") (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "bVar12 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar12 = (byte)((uint)iVar13 >> 8)" (identifier "bVar12") (= "=") (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)iVar13 >> 8)" (( "(") (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar13")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (} "}")))) (expression_statement "bVar10 = (byte)iVar13;" (assignment_expression "bVar10 = (byte)iVar13" (identifier "bVar10") (= "=") (cast_expression "(byte)iVar13" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar13"))) (; ";")) (expression_statement "bVar11 = bVar10;" (assignment_expression "bVar11 = bVar10" (identifier "bVar11") (= "=") (identifier "bVar10")) (; ";")) (if_statement "if (param_2[0x10] == 1) goto LAB_0013cf00;" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0013cf00;" (goto "goto") (statement_identifier "LAB_0013cf00") (; ";"))) (labeled_statement "LAB_0013cbe0:\n        param_6[4] = bVar12;" (statement_identifier "LAB_0013cbe0") (: ":") (expression_statement "param_6[4] = bVar12;" (assignment_expression "param_6[4] = bVar12" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar12")) (; ";"))) (expression_statement "param_6[5] = bVar10;" (assignment_expression "param_6[5] = bVar10" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (} "}")))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)) {\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }\n      else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 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 "(dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0)" (( "(") (comma_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n         dVar2 <= 0.0" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (identifier "param_5") (+ "+") (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 "dVar2 <= 0.0" (identifier "dVar2") (<= "<=") (number_literal "0.0"))) () ")"))) () ")")) (compound_statement "{\n        bVar12 = 0;\n        bVar14 = 0;\n        bVar11 = 0;\n        bVar10 = 0;\n        if (param_2[0x10] != 1) goto LAB_0013ca13;\nLAB_0013cc16:\n        bVar17 = 0;\n        param_6[6] = bVar11;\n        param_6[7] = bVar10;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;\nLAB_0013cc36:\n        bVar17 = 0;\n        iVar13 = 0;\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);\n        if (fVar1 <= 0.0) goto LAB_0013ca40;\n        if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }\n        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);\n        bVar17 = (byte)((uint)iVar13 >> 8);\n        if (param_2[0x10] != 1) goto LAB_0013ca4a;\nLAB_0013cca5:\n        param_6[8] = (byte)iVar13;\n        param_6[9] = bVar17;\n      }" ({ "{") (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" (identifier "bVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2[0x10] != 1) goto LAB_0013ca13;" (if "if") (parenthesized_expression "(param_2[0x10] != 1)" (( "(") (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_0013ca13;" (goto "goto") (statement_identifier "LAB_0013ca13") (; ";"))) (labeled_statement "LAB_0013cc16:\n        bVar17 = 0;" (statement_identifier "LAB_0013cc16") (: ":") (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";"))) (expression_statement "param_6[6] = bVar11;" (assignment_expression "param_6[6] = bVar11" (subscript_expression "param_6[6]" (identifier "param_6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[7] = bVar10;" (assignment_expression "param_6[7] = bVar10" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "iVar15 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar15 = *(int *)(param_1 + 0x2a8)" (identifier "iVar15") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;" (if "if") (parenthesized_expression "(*(int *)(iVar15 + 0x34) != 4)" (( "(") (binary_expression "*(int *)(iVar15 + 0x34) != 4" (pointer_expression "*(int *)(iVar15 + 0x34)" (* "*") (cast_expression "(int *)(iVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x34)" (( "(") (binary_expression "iVar15 + 0x34" (identifier "iVar15") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "4")) () ")")) (goto_statement "goto LAB_0013ca40;" (goto "goto") (statement_identifier "LAB_0013ca40") (; ";"))) (labeled_statement "LAB_0013cc36:\n        bVar17 = 0;" (statement_identifier "LAB_0013cc36") (: ":") (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);" (assignment_expression "fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" (identifier "fVar1") (= "=") (binary_expression "DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" (identifier "DAT_0029f710") (- "-") (cast_expression "(float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar15 + 0x38) * 8)" (( "(") (binary_expression "param_5 + *(int *)(iVar15 + 0x38) * 8" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar15 + 0x38) * 8" (pointer_expression "*(int *)(iVar15 + 0x38)" (* "*") (cast_expression "(int *)(iVar15 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x38)" (( "(") (binary_expression "iVar15 + 0x38" (identifier "iVar15") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))))) (; ";")) (if_statement "if (fVar1 <= 0.0) goto LAB_0013ca40;" (if "if") (parenthesized_expression "(fVar1 <= 0.0)" (( "(") (binary_expression "fVar1 <= 0.0" (identifier "fVar1") (<= "<=") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_0013ca40;" (goto "goto") (statement_identifier "LAB_0013ca40") (; ";"))) (if_statement "if (DAT_0029f710 <= fVar1) {\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }" (if "if") (parenthesized_expression "(DAT_0029f710 <= fVar1)" (( "(") (binary_expression "DAT_0029f710 <= fVar1" (identifier "DAT_0029f710") (<= "<=") (identifier "fVar1")) () ")")) (compound_statement "{\n          iVar13 = -1;\n          bVar17 = 0xff;\n          goto LAB_0013ca40;\n        }" ({ "{") (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" (identifier "iVar13") (= "=") (number_literal "-1")) (; ";")) (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" (identifier "bVar17") (= "=") (number_literal "0xff")) (; ";")) (goto_statement "goto LAB_0013ca40;" (goto "goto") (statement_identifier "LAB_0013ca40") (; ";")) (} "}"))) (expression_statement "iVar13 = (int)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(fVar1 + DAT_0029f124)" (identifier "iVar13") (= "=") (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 "bVar17 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar17 = (byte)((uint)iVar13 >> 8)" (identifier "bVar17") (= "=") (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)iVar13 >> 8)" (( "(") (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar13")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x10] != 1) goto LAB_0013ca4a;" (if "if") (parenthesized_expression "(param_2[0x10] != 1)" (( "(") (binary_expression "param_2[0x10] != 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_0013ca4a;" (goto "goto") (statement_identifier "LAB_0013ca4a") (; ";"))) (labeled_statement "LAB_0013cca5:\n        param_6[8] = (byte)iVar13;" (statement_identifier "LAB_0013cca5") (: ":") (expression_statement "param_6[8] = (byte)iVar13;" (assignment_expression "param_6[8] = (byte)iVar13" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(byte)iVar13" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar13"))) (; ";"))) (expression_statement "param_6[9] = bVar17;" (assignment_expression "param_6[9] = bVar17" (subscript_expression "param_6[9]" (identifier "param_6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (} "}")) (else_clause "else {\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }" (else "else") (compound_statement "{\n        if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }\n        bVar12 = (byte)iVar13;\n        bVar11 = bVar12;\n        bVar10 = bVar14;\n        if (param_2[0x10] == 1) goto LAB_0013cc16;\nLAB_0013ca13:\n        bVar17 = 0;\n        param_6[6] = bVar14;\n        param_6[7] = bVar12;\n        iVar15 = *(int *)(param_1 + 0x2a8);\n        iVar13 = 0;\n        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;\nLAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;\nLAB_0013ca4a:\n        param_6[9] = (byte)iVar13;\n        param_6[8] = bVar17;\n      }" ({ "{") (if_statement "if ((double)DAT_0029f710 <= dVar2) {\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }\n        else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" (if "if") (parenthesized_expression "((double)DAT_0029f710 <= dVar2)" (( "(") (binary_expression "(double)DAT_0029f710 <= dVar2" (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")) (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n          iVar13 = -1;\n          bVar14 = 0xff;\n        }" ({ "{") (expression_statement "iVar13 = -1;" (assignment_expression "iVar13 = -1" (identifier "iVar13") (= "=") (number_literal "-1")) (; ";")) (expression_statement "bVar14 = 0xff;" (assignment_expression "bVar14 = 0xff" (identifier "bVar14") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" (else "else") (compound_statement "{\n          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);\n          bVar14 = (byte)((uint)iVar13 >> 8);\n        }" ({ "{") (expression_statement "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124)" (identifier "iVar13") (= "=") (cast_expression "(int)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "bVar14 = (byte)((uint)iVar13 >> 8);" (assignment_expression "bVar14 = (byte)((uint)iVar13 >> 8)" (identifier "bVar14") (= "=") (call_expression "(byte)((uint)iVar13 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)iVar13 >> 8)" (( "(") (binary_expression "(uint)iVar13 >> 8" (cast_expression "(uint)iVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar13")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (} "}")))) (expression_statement "bVar12 = (byte)iVar13;" (assignment_expression "bVar12 = (byte)iVar13" (identifier "bVar12") (= "=") (cast_expression "(byte)iVar13" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar13"))) (; ";")) (expression_statement "bVar11 = bVar12;" (assignment_expression "bVar11 = bVar12" (identifier "bVar11") (= "=") (identifier "bVar12")) (; ";")) (expression_statement "bVar10 = bVar14;" (assignment_expression "bVar10 = bVar14" (identifier "bVar10") (= "=") (identifier "bVar14")) (; ";")) (if_statement "if (param_2[0x10] == 1) goto LAB_0013cc16;" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0013cc16;" (goto "goto") (statement_identifier "LAB_0013cc16") (; ";"))) (labeled_statement "LAB_0013ca13:\n        bVar17 = 0;" (statement_identifier "LAB_0013ca13") (: ":") (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";"))) (expression_statement "param_6[6] = bVar14;" (assignment_expression "param_6[6] = bVar14" (subscript_expression "param_6[6]" (identifier "param_6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "param_6[7] = bVar12;" (assignment_expression "param_6[7] = bVar12" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "iVar15 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar15 = *(int *)(param_1 + 0x2a8)" (identifier "iVar15") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;" (if "if") (parenthesized_expression "(*(int *)(iVar15 + 0x34) == 4)" (( "(") (binary_expression "*(int *)(iVar15 + 0x34) == 4" (pointer_expression "*(int *)(iVar15 + 0x34)" (* "*") (cast_expression "(int *)(iVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x34)" (( "(") (binary_expression "iVar15 + 0x34" (identifier "iVar15") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_0013cc36;" (goto "goto") (statement_identifier "LAB_0013cc36") (; ";"))) (labeled_statement "LAB_0013ca40:\n        if (param_2[0x10] == 1) goto LAB_0013cca5;" (statement_identifier "LAB_0013ca40") (: ":") (if_statement "if (param_2[0x10] == 1) goto LAB_0013cca5;" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0013cca5;" (goto "goto") (statement_identifier "LAB_0013cca5") (; ";")))) (labeled_statement "LAB_0013ca4a:\n        param_6[9] = (byte)iVar13;" (statement_identifier "LAB_0013ca4a") (: ":") (expression_statement "param_6[9] = (byte)iVar13;" (assignment_expression "param_6[9] = (byte)iVar13" (subscript_expression "param_6[9]" (identifier "param_6") ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(byte)iVar13" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar13"))) (; ";"))) (expression_statement "param_6[8] = bVar17;" (assignment_expression "param_6[8] = bVar17" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (} "}")))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" (identifier "local_64") (= "=") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_6 = param_6 + param_2[9] + 10;" (assignment_expression "param_6 = param_6 + param_2[9] + 10" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[9] + 10" (binary_expression "param_6 + param_2[9]" (identifier "param_6") (+ "+") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "10"))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x298) * 8" (identifier "param_5") (+ "+") (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 (local_64 == param_3) {\n        return;\n      }" (if "if") (parenthesized_expression "(local_64 == param_3)" (( "(") (binary_expression "local_64 == param_3" (identifier "local_64") (== "==") (identifier "param_3")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (if_statement "if (uVar16 < 0x11) {\n    if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar16 == 0) goto LAB_0013be09;\n  }\n  else {\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(uVar16 < 0x11)" (( "(") (binary_expression "uVar16 < 0x11" (identifier "uVar16") (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n    if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }\nLAB_0013d3f8:\n    local_4c = 0;\n    iStack_48 = 0;\n    if (uVar16 == 0) goto LAB_0013be09;\n  }" ({ "{") (if_statement "if (uVar16 == 8) {\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }" (if "if") (parenthesized_expression "(uVar16 == 8)" (( "(") (binary_expression "uVar16 == 8" (identifier "uVar16") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n      if (param_3 < 1) {\n        return;\n      }\n      iVar13 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);\n      return;\n    }" ({ "{") (if_statement "if (param_3 < 1) {\n        return;\n      }" (if "if") (parenthesized_expression "(param_3 < 1)" (( "(") (binary_expression "param_3 < 1" (identifier "param_3") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      } while (iVar13 != param_3);" (do "do") (compound_statement "{\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        *param_6 = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[1] = bVar11;\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        bVar11 = 0;\n        if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[2] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }\n        param_6[3] = bVar11;\n        bVar11 = 0;\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }\n        }\n        param_6[4] = bVar11;\n        iVar13 = iVar13 + 1;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        param_6 = param_6 + param_2[9] + 5;\n      }" ({ "{") (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (identifier "param_5") (+ "+") (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 "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" (if "if") (parenthesized_expression "(0.0 < dVar2)" (( "(") (binary_expression "0.0 < dVar2" (number_literal "0.0") (< "<") (identifier "dVar2")) () ")")) (compound_statement "{\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" ({ "{") (expression_statement "dVar2 = dVar2 / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002a7ff0" (identifier "dVar2") (= "=") (binary_expression "dVar2 / (double)DAT_002a7ff0" (identifier "dVar2") (/ "/") (cast_expression "(double)DAT_002a7ff0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" (identifier "bVar11") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" (( "(") (binary_expression "dVar2 < (double)DAT_002a7ff4" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_002a7ff4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff4"))) () ")")) (compound_statement "{\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" ({ "{") (expression_statement "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" (identifier "bVar11") (= "=") (cast_expression "(byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*param_6 = bVar11;" (assignment_expression "*param_6 = bVar11" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (identifier "param_5") (+ "+") (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 "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" (if "if") (parenthesized_expression "(0.0 < dVar2)" (( "(") (binary_expression "0.0 < dVar2" (number_literal "0.0") (< "<") (identifier "dVar2")) () ")")) (compound_statement "{\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" ({ "{") (expression_statement "dVar2 = dVar2 / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002a7ff0" (identifier "dVar2") (= "=") (binary_expression "dVar2 / (double)DAT_002a7ff0" (identifier "dVar2") (/ "/") (cast_expression "(double)DAT_002a7ff0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" (identifier "bVar11") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" (( "(") (binary_expression "dVar2 < (double)DAT_002a7ff4" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_002a7ff4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff4"))) () ")")) (compound_statement "{\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" ({ "{") (expression_statement "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" (identifier "bVar11") (= "=") (cast_expression "(byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "param_6[1] = bVar11;" (assignment_expression "param_6[1] = bVar11" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (identifier "param_5") (+ "+") (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 "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < dVar2) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" (if "if") (parenthesized_expression "(0.0 < dVar2)" (( "(") (binary_expression "0.0 < dVar2" (number_literal "0.0") (< "<") (identifier "dVar2")) () ")")) (compound_statement "{\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" ({ "{") (expression_statement "dVar2 = dVar2 / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002a7ff0" (identifier "dVar2") (= "=") (binary_expression "dVar2 / (double)DAT_002a7ff0" (identifier "dVar2") (/ "/") (cast_expression "(double)DAT_002a7ff0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" (identifier "bVar11") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" (( "(") (binary_expression "dVar2 < (double)DAT_002a7ff4" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_002a7ff4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff4"))) () ")")) (compound_statement "{\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" ({ "{") (expression_statement "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" (identifier "bVar11") (= "=") (cast_expression "(byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)) {\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)" (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 "(dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2)" (( "(") (comma_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           0.0 < dVar2" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (identifier "param_5") (+ "+") (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 < dVar2" (number_literal "0.0") (< "<") (identifier "dVar2"))) () ")"))) () ")")) (compound_statement "{\n          dVar2 = dVar2 / (double)DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }\n        }" ({ "{") (expression_statement "dVar2 = dVar2 / (double)DAT_002a7ff0;" (assignment_expression "dVar2 = dVar2 / (double)DAT_002a7ff0" (identifier "dVar2") (= "=") (binary_expression "dVar2 / (double)DAT_002a7ff0" (identifier "dVar2") (/ "/") (cast_expression "(double)DAT_002a7ff0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" (identifier "bVar11") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar2 < (double)DAT_002a7ff4) {\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_002a7ff4)" (( "(") (binary_expression "dVar2 < (double)DAT_002a7ff4" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_002a7ff4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff4"))) () ")")) (compound_statement "{\n            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);\n          }" ({ "{") (expression_statement "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" (identifier "bVar11") (= "=") (cast_expression "(byte)(short)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(short)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "param_6[3] = bVar11;" (assignment_expression "param_6[3] = bVar11" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)) {\n          fVar1 = fVar1 / DAT_002a7ff0;\n          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (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 *)(param_5 + *(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 *)(param_5 + *(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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1)" (( "(") (comma_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           0.0 < fVar1" (assignment_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "fVar1") (= "=") (binary_expression "DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "DAT_0029f710") (- "-") (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "param_5") (+ "+") (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          bVar11 = 0xff;\n          if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (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 "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" (identifier "bVar11") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (fVar1 < DAT_002a7ff4) {\n            bVar11 = (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            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n          }" ({ "{") (expression_statement "bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124)" (identifier "bVar11") (= "=") (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_6[4] = bVar11;" (assignment_expression "param_6[4] = bVar11" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (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 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x298) * 8" (identifier "param_5") (+ "+") (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_6 = param_6 + param_2[9] + 5;" (assignment_expression "param_6 = param_6 + param_2[9] + 5" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[9] + 5" (binary_expression "param_6 + param_2[9]" (identifier "param_6") (+ "+") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != param_3)" (( "(") (binary_expression "iVar13 != param_3" (identifier "iVar13") (!= "!=") (identifier "param_3")) () ")")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_0013d3f8:\n    local_4c = 0;" (statement_identifier "LAB_0013d3f8") (: ":") (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iStack_48 = 0;" (assignment_expression "iStack_48 = 0" (identifier "iStack_48") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar16 == 0) goto LAB_0013be09;" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013be09;" (goto "goto") (statement_identifier "LAB_0013be09") (; ";"))) (} "}")) (else_clause "else {\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }" (else "else") (compound_statement "{\n    if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n    if (uVar16 != 0x40) goto LAB_0013d3f8;\n    if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }\n  }" ({ "{") (if_statement "if (uVar16 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" (if "if") (parenthesized_expression "(uVar16 == 0x20)" (( "(") (binary_expression "uVar16 == 0x20" (identifier "uVar16") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n      if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" ({ "{") (if_statement "if (param_2[2] == 1) {\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }" (if "if") (parenthesized_expression "(param_2[2] == 1)" (( "(") (binary_expression "param_2[2] == 1" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        if (param_3 < 1) {\n          return;\n        }\n        local_64 = 0;\n        do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);\n        return;\n      }" ({ "{") (if_statement "if (param_3 < 1) {\n          return;\n        }" (if "if") (parenthesized_expression "(param_3 < 1)" (( "(") (binary_expression "param_3 < 1" (identifier "param_3") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        } while (local_64 != param_3);" (do "do") (compound_statement "{\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }\n          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar10 = (byte)((uint)fVar1 >> 0x18);\n          bVar12 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }\n          else {\n            fVar1 = 0.0;\n          }\n          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);\n          bVar11 = (byte)((uint)fVar1 >> 8);\n          bVar12 = (byte)((uint)fVar1 >> 0x18);\n          bVar10 = (byte)((uint)fVar1 >> 0x10);\n          if (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }\n          local_64 = local_64 + 1;\n          param_6 = param_6 + param_2[9] + 0x14;\n          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n        }" ({ "{") (expression_statement "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (identifier "fVar1") (= "=") (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                  (float)*(double *)(param_2 + 0x11)" (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (identifier "param_5") (+ "+") (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)*(double *)(param_2 + 0x11)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_2 + 0x11)" (* "*") (cast_expression "(double *)(param_2 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x11)" (( "(") (binary_expression "param_2 + 0x11" (identifier "param_2") (+ "+") (number_literal "0x11")) () ")")))))) (+ "+") (cast_expression "(float)*(double *)(param_2 + 3)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_2 + 3)" (* "*") (cast_expression "(double *)(param_2 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 3)" (( "(") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) () ")"))))))) (; ";")) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (byte)((uint)fVar1 >> 8)" (identifier "bVar11") (= "=") (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 "bVar12 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar1 >> 0x10)" (identifier "bVar12") (= "=") (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")) () ")")))) (; ";")) (expression_statement "bVar10 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar10 = (byte)((uint)fVar1 >> 0x18)" (identifier "bVar10") (= "=") (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")) () ")")))) (; ";")) (if_statement "if (param_2[0x10] == 1) {\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }\n          else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            *param_6 = SUB41(fVar1,0);\n            param_6[1] = bVar11;\n            param_6[2] = bVar12;\n            param_6[3] = bVar10;\n          }" ({ "{") (expression_statement "*param_6 = SUB41(fVar1,0);" (assignment_expression "*param_6 = SUB41(fVar1,0)" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[1] = bVar11;" (assignment_expression "param_6[1] = bVar11" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[2] = bVar12;" (assignment_expression "param_6[2] = bVar12" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[3] = bVar10;" (assignment_expression "param_6[3] = bVar10" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (} "}")) (else_clause "else {\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }" (else "else") (compound_statement "{\n            param_6[1] = bVar12;\n            *param_6 = bVar10;\n            param_6[2] = bVar11;\n            param_6[3] = SUB41(fVar1,0);\n          }" ({ "{") (expression_statement "param_6[1] = bVar12;" (assignment_expression "param_6[1] = bVar12" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "*param_6 = bVar10;" (assignment_expression "*param_6 = bVar10" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[3] = SUB41(fVar1,0);" (assignment_expression "param_6[3] = SUB41(fVar1,0)" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (expression_statement "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (identifier "fVar1") (= "=") (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                  (float)*(double *)(param_2 + 0x11)" (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (identifier "param_5") (+ "+") (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)*(double *)(param_2 + 0x11)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_2 + 0x11)" (* "*") (cast_expression "(double *)(param_2 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x11)" (( "(") (binary_expression "param_2 + 0x11" (identifier "param_2") (+ "+") (number_literal "0x11")) () ")")))))) (+ "+") (cast_expression "(float)*(double *)(param_2 + 3)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_2 + 3)" (* "*") (cast_expression "(double *)(param_2 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 3)" (( "(") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) () ")"))))))) (; ";")) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (byte)((uint)fVar1 >> 8)" (identifier "bVar11") (= "=") (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 "bVar10 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar10 = (byte)((uint)fVar1 >> 0x18)" (identifier "bVar10") (= "=") (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 "bVar12 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar1 >> 0x10)" (identifier "bVar12") (= "=") (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 (param_2[0x10] == 1) {\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }\n          else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            param_6[4] = SUB41(fVar1,0);\n            param_6[5] = bVar11;\n            param_6[6] = bVar12;\n            param_6[7] = bVar10;\n          }" ({ "{") (expression_statement "param_6[4] = SUB41(fVar1,0);" (assignment_expression "param_6[4] = SUB41(fVar1,0)" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[5] = bVar11;" (assignment_expression "param_6[5] = bVar11" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[6] = bVar12;" (assignment_expression "param_6[6] = bVar12" (subscript_expression "param_6[6]" (identifier "param_6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[7] = bVar10;" (assignment_expression "param_6[7] = bVar10" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (} "}")) (else_clause "else {\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }" (else "else") (compound_statement "{\n            param_6[4] = bVar10;\n            param_6[6] = bVar11;\n            param_6[5] = bVar12;\n            param_6[7] = SUB41(fVar1,0);\n          }" ({ "{") (expression_statement "param_6[4] = bVar10;" (assignment_expression "param_6[4] = bVar10" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[6] = bVar11;" (assignment_expression "param_6[6] = bVar11" (subscript_expression "param_6[6]" (identifier "param_6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[5] = bVar12;" (assignment_expression "param_6[5] = bVar12" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[7] = SUB41(fVar1,0);" (assignment_expression "param_6[7] = SUB41(fVar1,0)" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (expression_statement "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (identifier "fVar1") (= "=") (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                  (float)*(double *)(param_2 + 0x11)" (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (identifier "param_5") (+ "+") (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)*(double *)(param_2 + 0x11)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_2 + 0x11)" (* "*") (cast_expression "(double *)(param_2 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x11)" (( "(") (binary_expression "param_2 + 0x11" (identifier "param_2") (+ "+") (number_literal "0x11")) () ")")))))) (+ "+") (cast_expression "(float)*(double *)(param_2 + 3)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_2 + 3)" (* "*") (cast_expression "(double *)(param_2 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 3)" (( "(") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) () ")"))))))) (; ";")) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (byte)((uint)fVar1 >> 8)" (identifier "bVar11") (= "=") (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 "bVar10 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar10 = (byte)((uint)fVar1 >> 0x18)" (identifier "bVar10") (= "=") (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 "bVar12 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar1 >> 0x10)" (identifier "bVar12") (= "=") (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 (param_2[0x10] == 1) {\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }\n          else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            param_6[8] = SUB41(fVar1,0);\n            param_6[10] = bVar12;\n            param_6[9] = bVar11;\n            param_6[0xb] = bVar10;\n          }" ({ "{") (expression_statement "param_6[8] = SUB41(fVar1,0);" (assignment_expression "param_6[8] = SUB41(fVar1,0)" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[10] = bVar12;" (assignment_expression "param_6[10] = bVar12" (subscript_expression "param_6[10]" (identifier "param_6") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[9] = bVar11;" (assignment_expression "param_6[9] = bVar11" (subscript_expression "param_6[9]" (identifier "param_6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0xb] = bVar10;" (assignment_expression "param_6[0xb] = bVar10" (subscript_expression "param_6[0xb]" (identifier "param_6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (} "}")) (else_clause "else {\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }" (else "else") (compound_statement "{\n            param_6[10] = bVar11;\n            param_6[8] = bVar10;\n            param_6[9] = bVar12;\n            param_6[0xb] = SUB41(fVar1,0);\n          }" ({ "{") (expression_statement "param_6[10] = bVar11;" (assignment_expression "param_6[10] = bVar11" (subscript_expression "param_6[10]" (identifier "param_6") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[8] = bVar10;" (assignment_expression "param_6[8] = bVar10" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[9] = bVar12;" (assignment_expression "param_6[9] = bVar12" (subscript_expression "param_6[9]" (identifier "param_6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[0xb] = SUB41(fVar1,0);" (assignment_expression "param_6[0xb] = SUB41(fVar1,0)" (subscript_expression "param_6[0xb]" (identifier "param_6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n            fVar1 = 0.0;\n          }\n          else {\n            fVar1 = (float)*(double *)(param_5 + *(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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }" (else "else") (compound_statement "{\n            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n          }" ({ "{") (expression_statement "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);" (assignment_expression "fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (identifier "fVar1") (= "=") (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (identifier "param_5") (+ "+") (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)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (identifier "fVar1") (= "=") (binary_expression "fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "fVar1 * (float)*(double *)(param_2 + 0x11)" (identifier "fVar1") (* "*") (cast_expression "(float)*(double *)(param_2 + 0x11)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_2 + 0x11)" (* "*") (cast_expression "(double *)(param_2 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x11)" (( "(") (binary_expression "param_2 + 0x11" (identifier "param_2") (+ "+") (number_literal "0x11")) () ")")))))) (+ "+") (cast_expression "(float)*(double *)(param_2 + 3)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_2 + 3)" (* "*") (cast_expression "(double *)(param_2 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 3)" (( "(") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) () ")"))))))) (; ";")) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (byte)((uint)fVar1 >> 8)" (identifier "bVar11") (= "=") (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 "bVar12 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar12 = (byte)((uint)fVar1 >> 0x18)" (identifier "bVar12") (= "=") (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 "bVar10 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar10 = (byte)((uint)fVar1 >> 0x10)" (identifier "bVar10") (= "=") (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 (param_2[0x10] == 1) {\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }\n          else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            param_6[0xc] = SUB41(fVar1,0);\n            param_6[0xe] = bVar10;\n            param_6[0xd] = bVar11;\n            param_6[0xf] = bVar12;\n          }" ({ "{") (expression_statement "param_6[0xc] = SUB41(fVar1,0);" (assignment_expression "param_6[0xc] = SUB41(fVar1,0)" (subscript_expression "param_6[0xc]" (identifier "param_6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[0xe] = bVar10;" (assignment_expression "param_6[0xe] = bVar10" (subscript_expression "param_6[0xe]" (identifier "param_6") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0xd] = bVar11;" (assignment_expression "param_6[0xd] = bVar11" (subscript_expression "param_6[0xd]" (identifier "param_6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0xf] = bVar12;" (assignment_expression "param_6[0xf] = bVar12" (subscript_expression "param_6[0xf]" (identifier "param_6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (} "}")) (else_clause "else {\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }" (else "else") (compound_statement "{\n            param_6[0xe] = bVar11;\n            param_6[0xc] = bVar12;\n            param_6[0xd] = bVar10;\n            param_6[0xf] = SUB41(fVar1,0);\n          }" ({ "{") (expression_statement "param_6[0xe] = bVar11;" (assignment_expression "param_6[0xe] = bVar11" (subscript_expression "param_6[0xe]" (identifier "param_6") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0xc] = bVar12;" (assignment_expression "param_6[0xc] = bVar12" (subscript_expression "param_6[0xc]" (identifier "param_6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[0xd] = bVar10;" (assignment_expression "param_6[0xd] = bVar10" (subscript_expression "param_6[0xd]" (identifier "param_6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0xf] = SUB41(fVar1,0);" (assignment_expression "param_6[0xf] = SUB41(fVar1,0)" (subscript_expression "param_6[0xf]" (identifier "param_6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n            fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(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 *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n          }" ({ "{") (expression_statement "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "fVar1") (= "=") (binary_expression "DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "DAT_0029f710") (- "-") (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "param_5") (+ "+") (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)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);" (assignment_expression "fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (identifier "fVar1") (= "=") (binary_expression "fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3)" (binary_expression "fVar1 * (float)*(double *)(param_2 + 0x11)" (identifier "fVar1") (* "*") (cast_expression "(float)*(double *)(param_2 + 0x11)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_2 + 0x11)" (* "*") (cast_expression "(double *)(param_2 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x11)" (( "(") (binary_expression "param_2 + 0x11" (identifier "param_2") (+ "+") (number_literal "0x11")) () ")")))))) (+ "+") (cast_expression "(float)*(double *)(param_2 + 3)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_2 + 3)" (* "*") (cast_expression "(double *)(param_2 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 3)" (( "(") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) () ")"))))))) (; ";")) (expression_statement "bVar11 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar11 = (byte)((uint)fVar1 >> 8)" (identifier "bVar11") (= "=") (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 "bVar12 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar12 = (byte)((uint)fVar1 >> 0x18)" (identifier "bVar12") (= "=") (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 "bVar10 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar10 = (byte)((uint)fVar1 >> 0x10)" (identifier "bVar10") (= "=") (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 (param_2[0x10] == 1) {\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }\n          else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            param_6[0x10] = SUB41(fVar1,0);\n            param_6[0x12] = bVar10;\n            param_6[0x11] = bVar11;\n            param_6[0x13] = bVar12;\n          }" ({ "{") (expression_statement "param_6[0x10] = SUB41(fVar1,0);" (assignment_expression "param_6[0x10] = SUB41(fVar1,0)" (subscript_expression "param_6[0x10]" (identifier "param_6") ([ "[") (number_literal "0x10") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[0x12] = bVar10;" (assignment_expression "param_6[0x12] = bVar10" (subscript_expression "param_6[0x12]" (identifier "param_6") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0x11] = bVar11;" (assignment_expression "param_6[0x11] = bVar11" (subscript_expression "param_6[0x11]" (identifier "param_6") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0x13] = bVar12;" (assignment_expression "param_6[0x13] = bVar12" (subscript_expression "param_6[0x13]" (identifier "param_6") ([ "[") (number_literal "0x13") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (} "}")) (else_clause "else {\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }" (else "else") (compound_statement "{\n            param_6[0x12] = bVar11;\n            param_6[0x10] = bVar12;\n            param_6[0x11] = bVar10;\n            param_6[0x13] = SUB41(fVar1,0);\n          }" ({ "{") (expression_statement "param_6[0x12] = bVar11;" (assignment_expression "param_6[0x12] = bVar11" (subscript_expression "param_6[0x12]" (identifier "param_6") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0x10] = bVar12;" (assignment_expression "param_6[0x10] = bVar12" (subscript_expression "param_6[0x10]" (identifier "param_6") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[0x11] = bVar10;" (assignment_expression "param_6[0x11] = bVar10" (subscript_expression "param_6[0x11]" (identifier "param_6") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0x13] = SUB41(fVar1,0);" (assignment_expression "param_6[0x13] = SUB41(fVar1,0)" (subscript_expression "param_6[0x13]" (identifier "param_6") ([ "[") (number_literal "0x13") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" (identifier "local_64") (= "=") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_6 = param_6 + param_2[9] + 0x14;" (assignment_expression "param_6 = param_6 + param_2[9] + 0x14" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[9] + 0x14" (binary_expression "param_6 + param_2[9]" (identifier "param_6") (+ "+") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "0x14"))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x298) * 8" (identifier "param_5") (+ "+") (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")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_64 != param_3)" (( "(") (binary_expression "local_64 != param_3" (identifier "local_64") (!= "!=") (identifier "param_3")) () ")")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (param_3 < 1) {\n        return;\n      }" (if "if") (parenthesized_expression "(param_3 < 1)" (( "(") (binary_expression "param_3 < 1" (identifier "param_3") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);" (do "do") (compound_statement "{\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n        if (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n        if (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }\n        if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x14;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      }" ({ "{") (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (identifier "param_5") (+ "+") (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 (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }" (if "if") (parenthesized_expression "(dVar2 <= 0.0)" (( "(") (binary_expression "dVar2 <= 0.0" (identifier "dVar2") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }" ({ "{") (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" (identifier "bVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }" (else "else") (compound_statement "{\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }\n        }" ({ "{") (expression_statement "dVar2 = dVar2 * (double)DAT_002a7fec;" (assignment_expression "dVar2 = dVar2 * (double)DAT_002a7fec" (identifier "dVar2") (= "=") (binary_expression "dVar2 * (double)DAT_002a7fec" (identifier "dVar2") (* "*") (cast_expression "(double)DAT_002a7fec" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (if_statement "if (dVar5 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }" (if "if") (parenthesized_expression "(dVar5 <= dVar2)" (( "(") (binary_expression "dVar5 <= dVar2" (identifier "dVar5") (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }" ({ "{") (expression_statement "local_34 = 0xff;" (assignment_expression "local_34 = 0xff" (identifier "local_34") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" (identifier "bVar12") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" (identifier "bVar11") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" (identifier "bVar10") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }" (else "else") (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n          }" ({ "{") (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" (identifier "lVar3") (= "=") (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "local_34 = (byte)lVar3;" (assignment_expression "local_34 = (byte)lVar3" (identifier "local_34") (= "=") (cast_expression "(byte)lVar3" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "lVar3"))) (; ";")) (expression_statement "bVar10 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar10 = (byte)((ulonglong)lVar3 >> 0x18)" (identifier "bVar10") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 0x18)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x18" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar11 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar11 = (byte)((ulonglong)lVar3 >> 0x10)" (identifier "bVar11") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 0x10)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x10" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar12 = (byte)((ulonglong)lVar3 >> 8)" (identifier "bVar12") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 8)" (( "(") (binary_expression "(ulonglong)lVar3 >> 8" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (param_2[0x10] == 1) {\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }\n        else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[1] = bVar12;\n          *param_6 = local_34;\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n        }" ({ "{") (expression_statement "param_6[1] = bVar12;" (assignment_expression "param_6[1] = bVar12" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "*param_6 = local_34;" (assignment_expression "*param_6 = local_34" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[3] = bVar10;" (assignment_expression "param_6[3] = bVar10" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (} "}")) (else_clause "else {\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }" (else "else") (compound_statement "{\n          param_6[2] = bVar12;\n          *param_6 = bVar10;\n          param_6[3] = local_34;\n          param_6[1] = bVar11;\n        }" ({ "{") (expression_statement "param_6[2] = bVar12;" (assignment_expression "param_6[2] = bVar12" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "*param_6 = bVar10;" (assignment_expression "*param_6 = bVar10" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[3] = local_34;" (assignment_expression "param_6[3] = local_34" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "param_6[1] = bVar11;" (assignment_expression "param_6[1] = bVar11" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (} "}")))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (identifier "param_5") (+ "+") (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 (dVar2 <= 0.0) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" (if "if") (parenthesized_expression "(dVar2 <= 0.0)" (( "(") (binary_expression "dVar2 <= 0.0" (identifier "dVar2") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }" ({ "{") (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" (identifier "bVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" (else "else") (compound_statement "{\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" ({ "{") (expression_statement "dVar2 = dVar2 * (double)DAT_002a7fec;" (assignment_expression "dVar2 = dVar2 * (double)DAT_002a7fec" (identifier "dVar2") (= "=") (binary_expression "dVar2 * (double)DAT_002a7fec" (identifier "dVar2") (* "*") (cast_expression "(double)DAT_002a7fec" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (if_statement "if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" (if "if") (parenthesized_expression "(DAT_002a8000 <= dVar2)" (( "(") (binary_expression "DAT_002a8000 <= dVar2" (identifier "DAT_002a8000") (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }" ({ "{") (expression_statement "local_34 = 0xff;" (assignment_expression "local_34 = 0xff" (identifier "local_34") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" (identifier "bVar12") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" (identifier "bVar11") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" (identifier "bVar10") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" (else "else") (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" ({ "{") (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" (identifier "lVar3") (= "=") (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "local_34 = (byte)lVar3;" (assignment_expression "local_34 = (byte)lVar3" (identifier "local_34") (= "=") (cast_expression "(byte)lVar3" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "lVar3"))) (; ";")) (expression_statement "bVar12 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar12 = (byte)((ulonglong)lVar3 >> 8)" (identifier "bVar12") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 8)" (( "(") (binary_expression "(ulonglong)lVar3 >> 8" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar10 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar10 = (byte)((ulonglong)lVar3 >> 0x18)" (identifier "bVar10") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 0x18)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x18" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar11 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar11 = (byte)((ulonglong)lVar3 >> 0x10)" (identifier "bVar11") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 0x10)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x10" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (param_2[0x10] == 1) {\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }\n        else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[4] = local_34;\n          param_6[6] = bVar11;\n          param_6[5] = bVar12;\n          param_6[7] = bVar10;\n        }" ({ "{") (expression_statement "param_6[4] = local_34;" (assignment_expression "param_6[4] = local_34" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "param_6[6] = bVar11;" (assignment_expression "param_6[6] = bVar11" (subscript_expression "param_6[6]" (identifier "param_6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[5] = bVar12;" (assignment_expression "param_6[5] = bVar12" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[7] = bVar10;" (assignment_expression "param_6[7] = bVar10" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (} "}")) (else_clause "else {\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }" (else "else") (compound_statement "{\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[6] = bVar12;\n          param_6[7] = local_34;\n        }" ({ "{") (expression_statement "param_6[4] = bVar10;" (assignment_expression "param_6[4] = bVar10" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[5] = bVar11;" (assignment_expression "param_6[5] = bVar11" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[6] = bVar12;" (assignment_expression "param_6[6] = bVar12" (subscript_expression "param_6[6]" (identifier "param_6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[7] = local_34;" (assignment_expression "param_6[7] = local_34" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_34")) (; ";")) (} "}")))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (identifier "param_5") (+ "+") (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 (dVar2 <= 0.0) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" (if "if") (parenthesized_expression "(dVar2 <= 0.0)" (( "(") (binary_expression "dVar2 <= 0.0" (identifier "dVar2") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar10 = 0;\n        }" ({ "{") (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" (identifier "bVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" (else "else") (compound_statement "{\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" ({ "{") (expression_statement "dVar2 = dVar2 * (double)DAT_002a7fec;" (assignment_expression "dVar2 = dVar2 * (double)DAT_002a7fec" (identifier "dVar2") (= "=") (binary_expression "dVar2 * (double)DAT_002a7fec" (identifier "dVar2") (* "*") (cast_expression "(double)DAT_002a7fec" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (if_statement "if (DAT_002a8000 <= dVar2) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" (if "if") (parenthesized_expression "(DAT_002a8000 <= dVar2)" (( "(") (binary_expression "DAT_002a8000 <= dVar2" (identifier "DAT_002a8000") (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar10 = 0xff;\n          }" ({ "{") (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" (identifier "bVar11") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar14 = 0xff;" (assignment_expression "bVar14 = 0xff" (identifier "bVar14") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" (identifier "bVar12") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" (identifier "bVar10") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" (else "else") (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" ({ "{") (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" (identifier "lVar3") (= "=") (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "bVar14 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar14 = (byte)((ulonglong)lVar3 >> 8)" (identifier "bVar14") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 8)" (( "(") (binary_expression "(ulonglong)lVar3 >> 8" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar11 = (byte)lVar3;" (assignment_expression "bVar11 = (byte)lVar3" (identifier "bVar11") (= "=") (cast_expression "(byte)lVar3" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "lVar3"))) (; ";")) (expression_statement "bVar10 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar10 = (byte)((ulonglong)lVar3 >> 0x18)" (identifier "bVar10") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 0x18)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x18" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar12 = (byte)((ulonglong)lVar3 >> 0x10)" (identifier "bVar12") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 0x10)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x10" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (param_2[0x10] == 1) {\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }\n        else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar10;\n          param_6[8] = bVar11;\n          param_6[9] = bVar14;\n        }" ({ "{") (expression_statement "param_6[10] = bVar12;" (assignment_expression "param_6[10] = bVar12" (subscript_expression "param_6[10]" (identifier "param_6") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[0xb] = bVar10;" (assignment_expression "param_6[0xb] = bVar10" (subscript_expression "param_6[0xb]" (identifier "param_6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[8] = bVar11;" (assignment_expression "param_6[8] = bVar11" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[9] = bVar14;" (assignment_expression "param_6[9] = bVar14" (subscript_expression "param_6[9]" (identifier "param_6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (} "}")) (else_clause "else {\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }" (else "else") (compound_statement "{\n          param_6[9] = bVar12;\n          param_6[10] = bVar14;\n          param_6[8] = bVar10;\n          param_6[0xb] = bVar11;\n        }" ({ "{") (expression_statement "param_6[9] = bVar12;" (assignment_expression "param_6[9] = bVar12" (subscript_expression "param_6[9]" (identifier "param_6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[10] = bVar14;" (assignment_expression "param_6[10] = bVar14" (subscript_expression "param_6[10]" (identifier "param_6") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "param_6[8] = bVar10;" (assignment_expression "param_6[8] = bVar10" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0xb] = bVar11;" (assignment_expression "param_6[0xb] = bVar11" (subscript_expression "param_6[0xb]" (identifier "param_6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (} "}")))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)) {\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }\n        else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 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 "(dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0)" (( "(") (comma_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n           dVar2 <= 0.0" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (identifier "param_5") (+ "+") (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 "dVar2 <= 0.0" (identifier "dVar2") (<= "<=") (number_literal "0.0"))) () ")"))) () ")")) (compound_statement "{\n          local_34 = 0;\n          bVar12 = 0;\n          bVar11 = 0;\n          bVar10 = 0;\n        }" ({ "{") (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" (identifier "bVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" (else "else") (compound_statement "{\n          dVar2 = dVar2 * (double)DAT_002a7fec;\n          if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" ({ "{") (expression_statement "dVar2 = dVar2 * (double)DAT_002a7fec;" (assignment_expression "dVar2 = dVar2 * (double)DAT_002a7fec" (identifier "dVar2") (= "=") (binary_expression "dVar2 * (double)DAT_002a7fec" (identifier "dVar2") (* "*") (cast_expression "(double)DAT_002a7fec" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (if_statement "if (DAT_002a8000 <= dVar2) {\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" (if "if") (parenthesized_expression "(DAT_002a8000 <= dVar2)" (( "(") (binary_expression "DAT_002a8000 <= dVar2" (identifier "DAT_002a8000") (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n            local_34 = 0xff;\n            bVar12 = 0xff;\n            bVar11 = 0xff;\n            bVar10 = 0xff;\n          }" ({ "{") (expression_statement "local_34 = 0xff;" (assignment_expression "local_34 = 0xff" (identifier "local_34") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" (identifier "bVar12") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" (identifier "bVar11") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" (identifier "bVar10") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" (else "else") (compound_statement "{\n            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);\n            local_34 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 8);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" ({ "{") (expression_statement "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124)" (identifier "lVar3") (= "=") (cast_expression "(longlong)ROUND(dVar2 + (double)DAT_0029f124)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar2 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar2 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "local_34 = (byte)lVar3;" (assignment_expression "local_34 = (byte)lVar3" (identifier "local_34") (= "=") (cast_expression "(byte)lVar3" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "lVar3"))) (; ";")) (expression_statement "bVar12 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar12 = (byte)((ulonglong)lVar3 >> 8)" (identifier "bVar12") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 8)" (( "(") (binary_expression "(ulonglong)lVar3 >> 8" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar10 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar10 = (byte)((ulonglong)lVar3 >> 0x18)" (identifier "bVar10") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 0x18)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x18" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar11 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar11 = (byte)((ulonglong)lVar3 >> 0x10)" (identifier "bVar11") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 0x10)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x10" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (param_2[0x10] == 1) {\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }\n        else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[0xc] = local_34;\n          param_6[0xe] = bVar11;\n          param_6[0xd] = bVar12;\n          param_6[0xf] = bVar10;\n        }" ({ "{") (expression_statement "param_6[0xc] = local_34;" (assignment_expression "param_6[0xc] = local_34" (subscript_expression "param_6[0xc]" (identifier "param_6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "param_6[0xe] = bVar11;" (assignment_expression "param_6[0xe] = bVar11" (subscript_expression "param_6[0xe]" (identifier "param_6") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0xd] = bVar12;" (assignment_expression "param_6[0xd] = bVar12" (subscript_expression "param_6[0xd]" (identifier "param_6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[0xf] = bVar10;" (assignment_expression "param_6[0xf] = bVar10" (subscript_expression "param_6[0xf]" (identifier "param_6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (} "}")) (else_clause "else {\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }" (else "else") (compound_statement "{\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = local_34;\n        }" ({ "{") (expression_statement "param_6[0xc] = bVar10;" (assignment_expression "param_6[0xc] = bVar10" (subscript_expression "param_6[0xc]" (identifier "param_6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0xd] = bVar11;" (assignment_expression "param_6[0xd] = bVar11" (subscript_expression "param_6[0xd]" (identifier "param_6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0xe] = bVar12;" (assignment_expression "param_6[0xe] = bVar12" (subscript_expression "param_6[0xe]" (identifier "param_6") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[0xf] = local_34;" (assignment_expression "param_6[0xf] = local_34" (subscript_expression "param_6[0xf]" (identifier "param_6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "local_34")) (; ";")) (} "}")))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)) {\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }\n        else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n           (fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 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 "(fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0)" (( "(") (comma_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n           fVar1 <= 0.0" (assignment_expression "fVar1 = DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "fVar1") (= "=") (binary_expression "DAT_0029f710 -\n                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "DAT_0029f710") (- "-") (cast_expression "(float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "param_5") (+ "+") (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 "fVar1 <= 0.0" (identifier "fVar1") (<= "<=") (number_literal "0.0"))) () ")"))) () ")")) (compound_statement "{\n          bVar11 = 0;\n          bVar14 = 0;\n          bVar10 = 0;\n          bVar12 = 0;\n        }" ({ "{") (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" (identifier "bVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" (else "else") (compound_statement "{\n          fVar1 = fVar1 * DAT_002a7fec;\n          if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }\n        }" ({ "{") (expression_statement "fVar1 = fVar1 * DAT_002a7fec;" (assignment_expression "fVar1 = fVar1 * DAT_002a7fec" (identifier "fVar1") (= "=") (binary_expression "fVar1 * DAT_002a7fec" (identifier "fVar1") (* "*") (identifier "DAT_002a7fec"))) (; ";")) (if_statement "if ((float)DAT_002a8000 <= fVar1) {\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }\n          else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" (if "if") (parenthesized_expression "((float)DAT_002a8000 <= fVar1)" (( "(") (binary_expression "(float)DAT_002a8000 <= fVar1" (cast_expression "(float)DAT_002a8000" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "DAT_002a8000")) (<= "<=") (identifier "fVar1")) () ")")) (compound_statement "{\n            bVar11 = 0xff;\n            bVar14 = 0xff;\n            bVar10 = 0xff;\n            bVar12 = 0xff;\n          }" ({ "{") (expression_statement "bVar11 = 0xff;" (assignment_expression "bVar11 = 0xff" (identifier "bVar11") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar14 = 0xff;" (assignment_expression "bVar14 = 0xff" (identifier "bVar14") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar10 = 0xff;" (assignment_expression "bVar10 = 0xff" (identifier "bVar10") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" (identifier "bVar12") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" (else "else") (compound_statement "{\n            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);\n            bVar14 = (byte)((ulonglong)lVar3 >> 8);\n            bVar11 = (byte)lVar3;\n            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);\n            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);\n          }" ({ "{") (expression_statement "lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124)" (identifier "lVar3") (= "=") (cast_expression "(longlong)ROUND(fVar1 + DAT_0029f124)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (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 "bVar14 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar14 = (byte)((ulonglong)lVar3 >> 8)" (identifier "bVar14") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 8)" (( "(") (binary_expression "(ulonglong)lVar3 >> 8" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar11 = (byte)lVar3;" (assignment_expression "bVar11 = (byte)lVar3" (identifier "bVar11") (= "=") (cast_expression "(byte)lVar3" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "lVar3"))) (; ";")) (expression_statement "bVar12 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar12 = (byte)((ulonglong)lVar3 >> 0x18)" (identifier "bVar12") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 0x18)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x18" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar10 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar10 = (byte)((ulonglong)lVar3 >> 0x10)" (identifier "bVar10") (= "=") (call_expression "(byte)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar3 >> 0x10)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x10" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (param_2[0x10] == 1) {\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }\n        else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[0x12] = bVar10;\n          param_6[0x13] = bVar12;\n          param_6[0x10] = bVar11;\n          param_6[0x11] = bVar14;\n        }" ({ "{") (expression_statement "param_6[0x12] = bVar10;" (assignment_expression "param_6[0x12] = bVar10" (subscript_expression "param_6[0x12]" (identifier "param_6") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0x13] = bVar12;" (assignment_expression "param_6[0x13] = bVar12" (subscript_expression "param_6[0x13]" (identifier "param_6") ([ "[") (number_literal "0x13") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[0x10] = bVar11;" (assignment_expression "param_6[0x10] = bVar11" (subscript_expression "param_6[0x10]" (identifier "param_6") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0x11] = bVar14;" (assignment_expression "param_6[0x11] = bVar14" (subscript_expression "param_6[0x11]" (identifier "param_6") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (} "}")) (else_clause "else {\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }" (else "else") (compound_statement "{\n          param_6[0x11] = bVar10;\n          param_6[0x12] = bVar14;\n          param_6[0x10] = bVar12;\n          param_6[0x13] = bVar11;\n        }" ({ "{") (expression_statement "param_6[0x11] = bVar10;" (assignment_expression "param_6[0x11] = bVar10" (subscript_expression "param_6[0x11]" (identifier "param_6") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0x12] = bVar14;" (assignment_expression "param_6[0x12] = bVar14" (subscript_expression "param_6[0x12]" (identifier "param_6") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "param_6[0x10] = bVar12;" (assignment_expression "param_6[0x10] = bVar12" (subscript_expression "param_6[0x10]" (identifier "param_6") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[0x13] = bVar11;" (assignment_expression "param_6[0x13] = bVar11" (subscript_expression "param_6[0x13]" (identifier "param_6") ([ "[") (number_literal "0x13") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (} "}")))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" (identifier "local_64") (= "=") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_6 = param_6 + param_2[9] + 0x14;" (assignment_expression "param_6 = param_6 + param_2[9] + 0x14" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[9] + 0x14" (binary_expression "param_6 + param_2[9]" (identifier "param_6") (+ "+") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "0x14"))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x298) * 8" (identifier "param_5") (+ "+") (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")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_64 != param_3)" (( "(") (binary_expression "local_64 != param_3" (identifier "local_64") (!= "!=") (identifier "param_3")) () ")")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (uVar16 != 0x40) goto LAB_0013d3f8;" (if "if") (parenthesized_expression "(uVar16 != 0x40)" (( "(") (binary_expression "uVar16 != 0x40" (identifier "uVar16") (!= "!=") (number_literal "0x40")) () ")")) (goto_statement "goto LAB_0013d3f8;" (goto "goto") (statement_identifier "LAB_0013d3f8") (; ";"))) (if_statement "if (param_2[2] == 1) {\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" (if "if") (parenthesized_expression "(param_2[2] == 1)" (( "(") (binary_expression "param_2[2] == 1" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      if (param_3 < 1) {\n        return;\n      }\n      local_64 = 0;\n      do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);\n      return;\n    }" ({ "{") (if_statement "if (param_3 < 1) {\n        return;\n      }" (if "if") (parenthesized_expression "(param_3 < 1)" (( "(") (binary_expression "param_3 < 1" (identifier "param_3") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      } while (local_64 != param_3);" (do "do") (compound_statement "{\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }\n        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 0.0;\n        }\n        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);\n        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);\n        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);\n        local_84 = (byte)((ulonglong)dVar2 >> 0x38);\n        local_7c = (byte)((ulonglong)dVar2 >> 0x30);\n        local_74 = (byte)((ulonglong)dVar2 >> 0x18);\n        local_6c = (byte)((ulonglong)dVar2 >> 0x10);\n        local_8c = (byte)((ulonglong)dVar2 >> 8);\n        if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }\n        local_64 = local_64 + 1;\n        param_6 = param_6 + param_2[9] + 0x28;\n        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n      }" ({ "{") (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (identifier "dVar2") (= "=") (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                *(double *)(param_2 + 0x11)" (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (identifier "param_5") (+ "+") (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"))) () ")")))) (* "*") (pointer_expression "*(double *)(param_2 + 0x11)" (* "*") (cast_expression "(double *)(param_2 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x11)" (( "(") (binary_expression "param_2 + 0x11" (identifier "param_2") (+ "+") (number_literal "0x11")) () ")"))))) (+ "+") (pointer_expression "*(double *)(param_2 + 3)" (* "*") (cast_expression "(double *)(param_2 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 3)" (( "(") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) () ")")))))) (; ";")) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x28)" (identifier "bVar11") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x20)" (identifier "bVar10") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" (identifier "local_74") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" (identifier "local_84") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" (identifier "local_6c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" (identifier "local_7c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" (identifier "local_8c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 8)" (( "(") (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x10] == 1) {\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }\n        else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          *param_6 = SUB81(dVar2,0);\n          param_6[4] = bVar10;\n          param_6[5] = bVar11;\n          param_6[1] = local_8c;\n          param_6[2] = local_6c;\n          param_6[3] = local_74;\n          param_6[6] = local_7c;\n          param_6[7] = local_84;\n        }" ({ "{") (expression_statement "*param_6 = SUB81(dVar2,0);" (assignment_expression "*param_6 = SUB81(dVar2,0)" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (call_expression "SUB81(dVar2,0)" (identifier "SUB81") (argument_list "(dVar2,0)" (( "(") (identifier "dVar2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[4] = bVar10;" (assignment_expression "param_6[4] = bVar10" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[5] = bVar11;" (assignment_expression "param_6[5] = bVar11" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[1] = local_8c;" (assignment_expression "param_6[1] = local_8c" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_8c")) (; ";")) (expression_statement "param_6[2] = local_6c;" (assignment_expression "param_6[2] = local_6c" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "param_6[3] = local_74;" (assignment_expression "param_6[3] = local_74" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_74")) (; ";")) (expression_statement "param_6[6] = local_7c;" (assignment_expression "param_6[6] = local_7c" (subscript_expression "param_6[6]" (identifier "param_6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_7c")) (; ";")) (expression_statement "param_6[7] = local_84;" (assignment_expression "param_6[7] = local_84" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_84")) (; ";")) (} "}")) (else_clause "else {\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }" (else "else") (compound_statement "{\n          param_6[2] = bVar11;\n          param_6[3] = bVar10;\n          param_6[7] = SUB81(dVar2,0);\n          param_6[4] = local_74;\n          *param_6 = local_84;\n          param_6[5] = local_6c;\n          param_6[1] = local_7c;\n          param_6[6] = local_8c;\n        }" ({ "{") (expression_statement "param_6[2] = bVar11;" (assignment_expression "param_6[2] = bVar11" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[3] = bVar10;" (assignment_expression "param_6[3] = bVar10" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[7] = SUB81(dVar2,0);" (assignment_expression "param_6[7] = SUB81(dVar2,0)" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (call_expression "SUB81(dVar2,0)" (identifier "SUB81") (argument_list "(dVar2,0)" (( "(") (identifier "dVar2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[4] = local_74;" (assignment_expression "param_6[4] = local_74" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_74")) (; ";")) (expression_statement "*param_6 = local_84;" (assignment_expression "*param_6 = local_84" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "local_84")) (; ";")) (expression_statement "param_6[5] = local_6c;" (assignment_expression "param_6[5] = local_6c" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "param_6[1] = local_7c;" (assignment_expression "param_6[1] = local_7c" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_7c")) (; ";")) (expression_statement "param_6[6] = local_8c;" (assignment_expression "param_6[6] = local_8c" (subscript_expression "param_6[6]" (identifier "param_6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_8c")) (; ";")) (} "}")))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (identifier "dVar2") (= "=") (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *\n                *(double *)(param_2 + 0x11)" (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (identifier "param_5") (+ "+") (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"))) () ")")))) (* "*") (pointer_expression "*(double *)(param_2 + 0x11)" (* "*") (cast_expression "(double *)(param_2 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x11)" (( "(") (binary_expression "param_2 + 0x11" (identifier "param_2") (+ "+") (number_literal "0x11")) () ")"))))) (+ "+") (pointer_expression "*(double *)(param_2 + 3)" (* "*") (cast_expression "(double *)(param_2 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 3)" (( "(") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) () ")")))))) (; ";")) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x28)" (identifier "bVar11") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x20)" (identifier "bVar10") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" (identifier "local_74") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" (identifier "local_84") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" (identifier "local_6c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" (identifier "local_7c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" (identifier "local_8c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 8)" (( "(") (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x10] == 1) {\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }\n        else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[8] = SUB81(dVar2,0);\n          param_6[0xc] = bVar10;\n          param_6[0xd] = bVar11;\n          param_6[9] = local_8c;\n          param_6[0xe] = local_7c;\n          param_6[0xf] = local_84;\n          param_6[10] = local_6c;\n          param_6[0xb] = local_74;\n        }" ({ "{") (expression_statement "param_6[8] = SUB81(dVar2,0);" (assignment_expression "param_6[8] = SUB81(dVar2,0)" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (call_expression "SUB81(dVar2,0)" (identifier "SUB81") (argument_list "(dVar2,0)" (( "(") (identifier "dVar2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[0xc] = bVar10;" (assignment_expression "param_6[0xc] = bVar10" (subscript_expression "param_6[0xc]" (identifier "param_6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0xd] = bVar11;" (assignment_expression "param_6[0xd] = bVar11" (subscript_expression "param_6[0xd]" (identifier "param_6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[9] = local_8c;" (assignment_expression "param_6[9] = local_8c" (subscript_expression "param_6[9]" (identifier "param_6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_8c")) (; ";")) (expression_statement "param_6[0xe] = local_7c;" (assignment_expression "param_6[0xe] = local_7c" (subscript_expression "param_6[0xe]" (identifier "param_6") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "local_7c")) (; ";")) (expression_statement "param_6[0xf] = local_84;" (assignment_expression "param_6[0xf] = local_84" (subscript_expression "param_6[0xf]" (identifier "param_6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "local_84")) (; ";")) (expression_statement "param_6[10] = local_6c;" (assignment_expression "param_6[10] = local_6c" (subscript_expression "param_6[10]" (identifier "param_6") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "param_6[0xb] = local_74;" (assignment_expression "param_6[0xb] = local_74" (subscript_expression "param_6[0xb]" (identifier "param_6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "local_74")) (; ";")) (} "}")) (else_clause "else {\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }" (else "else") (compound_statement "{\n          param_6[0xb] = bVar10;\n          param_6[10] = bVar11;\n          param_6[0xf] = SUB81(dVar2,0);\n          param_6[0xc] = local_74;\n          param_6[8] = local_84;\n          param_6[0xd] = local_6c;\n          param_6[9] = local_7c;\n          param_6[0xe] = local_8c;\n        }" ({ "{") (expression_statement "param_6[0xb] = bVar10;" (assignment_expression "param_6[0xb] = bVar10" (subscript_expression "param_6[0xb]" (identifier "param_6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[10] = bVar11;" (assignment_expression "param_6[10] = bVar11" (subscript_expression "param_6[10]" (identifier "param_6") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0xf] = SUB81(dVar2,0);" (assignment_expression "param_6[0xf] = SUB81(dVar2,0)" (subscript_expression "param_6[0xf]" (identifier "param_6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (call_expression "SUB81(dVar2,0)" (identifier "SUB81") (argument_list "(dVar2,0)" (( "(") (identifier "dVar2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[0xc] = local_74;" (assignment_expression "param_6[0xc] = local_74" (subscript_expression "param_6[0xc]" (identifier "param_6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "local_74")) (; ";")) (expression_statement "param_6[8] = local_84;" (assignment_expression "param_6[8] = local_84" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_84")) (; ";")) (expression_statement "param_6[0xd] = local_6c;" (assignment_expression "param_6[0xd] = local_6c" (subscript_expression "param_6[0xd]" (identifier "param_6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "param_6[9] = local_7c;" (assignment_expression "param_6[9] = local_7c" (subscript_expression "param_6[9]" (identifier "param_6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_7c")) (; ";")) (expression_statement "param_6[0xe] = local_8c;" (assignment_expression "param_6[0xe] = local_8c" (subscript_expression "param_6[0xe]" (identifier "param_6") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "local_8c")) (; ";")) (} "}")))) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (identifier "dVar2") (= "=") (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *\n                *(double *)(param_2 + 0x11)" (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (identifier "param_5") (+ "+") (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"))) () ")")))) (* "*") (pointer_expression "*(double *)(param_2 + 0x11)" (* "*") (cast_expression "(double *)(param_2 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x11)" (( "(") (binary_expression "param_2 + 0x11" (identifier "param_2") (+ "+") (number_literal "0x11")) () ")"))))) (+ "+") (pointer_expression "*(double *)(param_2 + 3)" (* "*") (cast_expression "(double *)(param_2 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 3)" (( "(") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) () ")")))))) (; ";")) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x20)" (identifier "bVar11") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x28)" (identifier "bVar10") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" (identifier "local_84") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" (identifier "local_7c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" (identifier "local_74") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" (identifier "local_6c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" (identifier "local_8c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 8)" (( "(") (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x10] == 1) {\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }\n        else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[0x14] = bVar11;\n          param_6[0x10] = SUB81(dVar2,0);\n          param_6[0x11] = local_8c;\n          param_6[0x12] = local_6c;\n          param_6[0x13] = local_74;\n          param_6[0x15] = bVar10;\n          param_6[0x16] = local_7c;\n          param_6[0x17] = local_84;\n        }" ({ "{") (expression_statement "param_6[0x14] = bVar11;" (assignment_expression "param_6[0x14] = bVar11" (subscript_expression "param_6[0x14]" (identifier "param_6") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0x10] = SUB81(dVar2,0);" (assignment_expression "param_6[0x10] = SUB81(dVar2,0)" (subscript_expression "param_6[0x10]" (identifier "param_6") ([ "[") (number_literal "0x10") (] "]")) (= "=") (call_expression "SUB81(dVar2,0)" (identifier "SUB81") (argument_list "(dVar2,0)" (( "(") (identifier "dVar2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[0x11] = local_8c;" (assignment_expression "param_6[0x11] = local_8c" (subscript_expression "param_6[0x11]" (identifier "param_6") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "local_8c")) (; ";")) (expression_statement "param_6[0x12] = local_6c;" (assignment_expression "param_6[0x12] = local_6c" (subscript_expression "param_6[0x12]" (identifier "param_6") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "param_6[0x13] = local_74;" (assignment_expression "param_6[0x13] = local_74" (subscript_expression "param_6[0x13]" (identifier "param_6") ([ "[") (number_literal "0x13") (] "]")) (= "=") (identifier "local_74")) (; ";")) (expression_statement "param_6[0x15] = bVar10;" (assignment_expression "param_6[0x15] = bVar10" (subscript_expression "param_6[0x15]" (identifier "param_6") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0x16] = local_7c;" (assignment_expression "param_6[0x16] = local_7c" (subscript_expression "param_6[0x16]" (identifier "param_6") ([ "[") (number_literal "0x16") (] "]")) (= "=") (identifier "local_7c")) (; ";")) (expression_statement "param_6[0x17] = local_84;" (assignment_expression "param_6[0x17] = local_84" (subscript_expression "param_6[0x17]" (identifier "param_6") ([ "[") (number_literal "0x17") (] "]")) (= "=") (identifier "local_84")) (; ";")) (} "}")) (else_clause "else {\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }" (else "else") (compound_statement "{\n          param_6[0x13] = bVar11;\n          param_6[0x17] = SUB81(dVar2,0);\n          param_6[0x10] = local_84;\n          param_6[0x11] = local_7c;\n          param_6[0x12] = bVar10;\n          param_6[0x14] = local_74;\n          param_6[0x15] = local_6c;\n          param_6[0x16] = local_8c;\n        }" ({ "{") (expression_statement "param_6[0x13] = bVar11;" (assignment_expression "param_6[0x13] = bVar11" (subscript_expression "param_6[0x13]" (identifier "param_6") ([ "[") (number_literal "0x13") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0x17] = SUB81(dVar2,0);" (assignment_expression "param_6[0x17] = SUB81(dVar2,0)" (subscript_expression "param_6[0x17]" (identifier "param_6") ([ "[") (number_literal "0x17") (] "]")) (= "=") (call_expression "SUB81(dVar2,0)" (identifier "SUB81") (argument_list "(dVar2,0)" (( "(") (identifier "dVar2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[0x10] = local_84;" (assignment_expression "param_6[0x10] = local_84" (subscript_expression "param_6[0x10]" (identifier "param_6") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "local_84")) (; ";")) (expression_statement "param_6[0x11] = local_7c;" (assignment_expression "param_6[0x11] = local_7c" (subscript_expression "param_6[0x11]" (identifier "param_6") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "local_7c")) (; ";")) (expression_statement "param_6[0x12] = bVar10;" (assignment_expression "param_6[0x12] = bVar10" (subscript_expression "param_6[0x12]" (identifier "param_6") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0x14] = local_74;" (assignment_expression "param_6[0x14] = local_74" (subscript_expression "param_6[0x14]" (identifier "param_6") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "local_74")) (; ";")) (expression_statement "param_6[0x15] = local_6c;" (assignment_expression "param_6[0x15] = local_6c" (subscript_expression "param_6[0x15]" (identifier "param_6") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "param_6[0x16] = local_8c;" (assignment_expression "param_6[0x16] = local_8c" (subscript_expression "param_6[0x16]" (identifier "param_6") ([ "[") (number_literal "0x16") (] "]")) (= "=") (identifier "local_8c")) (; ";")) (} "}")))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n          dVar2 = 0.0;\n        }\n        else {\n          dVar2 = *(double *)(param_5 + *(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          dVar2 = 0.0;\n        }" ({ "{") (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" (identifier "dVar2") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else {\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }" (else "else") (compound_statement "{\n          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n        }" ({ "{") (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (identifier "param_5") (+ "+") (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 "dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (identifier "dVar2") (= "=") (binary_expression "dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "dVar2 * *(double *)(param_2 + 0x11)" (identifier "dVar2") (* "*") (pointer_expression "*(double *)(param_2 + 0x11)" (* "*") (cast_expression "(double *)(param_2 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x11)" (( "(") (binary_expression "param_2 + 0x11" (identifier "param_2") (+ "+") (number_literal "0x11")) () ")"))))) (+ "+") (pointer_expression "*(double *)(param_2 + 3)" (* "*") (cast_expression "(double *)(param_2 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 3)" (( "(") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) () ")")))))) (; ";")) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x20)" (identifier "bVar11") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x28)" (identifier "bVar10") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" (identifier "local_74") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" (identifier "local_84") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" (identifier "local_6c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" (identifier "local_7c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" (identifier "local_8c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 8)" (( "(") (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x10] == 1) {\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }\n        else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[0x1c] = bVar11;\n          param_6[0x1d] = bVar10;\n          param_6[0x18] = SUB81(dVar2,0);\n          param_6[0x19] = local_8c;\n          param_6[0x1e] = local_7c;\n          param_6[0x1a] = local_6c;\n          param_6[0x1b] = local_74;\n          param_6[0x1f] = local_84;\n        }" ({ "{") (expression_statement "param_6[0x1c] = bVar11;" (assignment_expression "param_6[0x1c] = bVar11" (subscript_expression "param_6[0x1c]" (identifier "param_6") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0x1d] = bVar10;" (assignment_expression "param_6[0x1d] = bVar10" (subscript_expression "param_6[0x1d]" (identifier "param_6") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0x18] = SUB81(dVar2,0);" (assignment_expression "param_6[0x18] = SUB81(dVar2,0)" (subscript_expression "param_6[0x18]" (identifier "param_6") ([ "[") (number_literal "0x18") (] "]")) (= "=") (call_expression "SUB81(dVar2,0)" (identifier "SUB81") (argument_list "(dVar2,0)" (( "(") (identifier "dVar2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[0x19] = local_8c;" (assignment_expression "param_6[0x19] = local_8c" (subscript_expression "param_6[0x19]" (identifier "param_6") ([ "[") (number_literal "0x19") (] "]")) (= "=") (identifier "local_8c")) (; ";")) (expression_statement "param_6[0x1e] = local_7c;" (assignment_expression "param_6[0x1e] = local_7c" (subscript_expression "param_6[0x1e]" (identifier "param_6") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (identifier "local_7c")) (; ";")) (expression_statement "param_6[0x1a] = local_6c;" (assignment_expression "param_6[0x1a] = local_6c" (subscript_expression "param_6[0x1a]" (identifier "param_6") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "param_6[0x1b] = local_74;" (assignment_expression "param_6[0x1b] = local_74" (subscript_expression "param_6[0x1b]" (identifier "param_6") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (identifier "local_74")) (; ";")) (expression_statement "param_6[0x1f] = local_84;" (assignment_expression "param_6[0x1f] = local_84" (subscript_expression "param_6[0x1f]" (identifier "param_6") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (identifier "local_84")) (; ";")) (} "}")) (else_clause "else {\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }" (else "else") (compound_statement "{\n          param_6[0x1b] = bVar11;\n          param_6[0x1f] = SUB81(dVar2,0);\n          param_6[0x1c] = local_74;\n          param_6[0x18] = local_84;\n          param_6[0x1d] = local_6c;\n          param_6[0x19] = local_7c;\n          param_6[0x1a] = bVar10;\n          param_6[0x1e] = local_8c;\n        }" ({ "{") (expression_statement "param_6[0x1b] = bVar11;" (assignment_expression "param_6[0x1b] = bVar11" (subscript_expression "param_6[0x1b]" (identifier "param_6") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0x1f] = SUB81(dVar2,0);" (assignment_expression "param_6[0x1f] = SUB81(dVar2,0)" (subscript_expression "param_6[0x1f]" (identifier "param_6") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (call_expression "SUB81(dVar2,0)" (identifier "SUB81") (argument_list "(dVar2,0)" (( "(") (identifier "dVar2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[0x1c] = local_74;" (assignment_expression "param_6[0x1c] = local_74" (subscript_expression "param_6[0x1c]" (identifier "param_6") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (identifier "local_74")) (; ";")) (expression_statement "param_6[0x18] = local_84;" (assignment_expression "param_6[0x18] = local_84" (subscript_expression "param_6[0x18]" (identifier "param_6") ([ "[") (number_literal "0x18") (] "]")) (= "=") (identifier "local_84")) (; ";")) (expression_statement "param_6[0x1d] = local_6c;" (assignment_expression "param_6[0x1d] = local_6c" (subscript_expression "param_6[0x1d]" (identifier "param_6") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "param_6[0x19] = local_7c;" (assignment_expression "param_6[0x19] = local_7c" (subscript_expression "param_6[0x19]" (identifier "param_6") ([ "[") (number_literal "0x19") (] "]")) (= "=") (identifier "local_7c")) (; ";")) (expression_statement "param_6[0x1a] = bVar10;" (assignment_expression "param_6[0x1a] = bVar10" (subscript_expression "param_6[0x1a]" (identifier "param_6") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0x1e] = local_8c;" (assignment_expression "param_6[0x1e] = local_8c" (subscript_expression "param_6[0x1e]" (identifier "param_6") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (identifier "local_8c")) (; ";")) (} "}")))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }\n        else {\n          dVar2 = 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          dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n        }" ({ "{") (expression_statement "dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar2 = (double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "dVar2") (= "=") (binary_expression "(double)DAT_0029f710 -\n                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")) (- "-") (pointer_expression "*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "param_5") (+ "+") (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          dVar2 = 0.0;\n        }" (else "else") (compound_statement "{\n          dVar2 = 0.0;\n        }" ({ "{") (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" (identifier "dVar2") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (expression_statement "dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);" (assignment_expression "dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (identifier "dVar2") (= "=") (binary_expression "dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3)" (binary_expression "dVar2 * *(double *)(param_2 + 0x11)" (identifier "dVar2") (* "*") (pointer_expression "*(double *)(param_2 + 0x11)" (* "*") (cast_expression "(double *)(param_2 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x11)" (( "(") (binary_expression "param_2 + 0x11" (identifier "param_2") (+ "+") (number_literal "0x11")) () ")"))))) (+ "+") (pointer_expression "*(double *)(param_2 + 3)" (* "*") (cast_expression "(double *)(param_2 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 3)" (( "(") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) () ")")))))) (; ";")) (expression_statement "bVar11 = (byte)((ulonglong)dVar2 >> 0x20);" (assignment_expression "bVar11 = (byte)((ulonglong)dVar2 >> 0x20)" (identifier "bVar11") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x20" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "bVar10 = (byte)((ulonglong)dVar2 >> 0x28);" (assignment_expression "bVar10 = (byte)((ulonglong)dVar2 >> 0x28)" (identifier "bVar10") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x28" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "local_84 = (byte)((ulonglong)dVar2 >> 0x38);" (assignment_expression "local_84 = (byte)((ulonglong)dVar2 >> 0x38)" (identifier "local_84") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x38" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "local_7c = (byte)((ulonglong)dVar2 >> 0x30);" (assignment_expression "local_7c = (byte)((ulonglong)dVar2 >> 0x30)" (identifier "local_7c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x30" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "local_74 = (byte)((ulonglong)dVar2 >> 0x18);" (assignment_expression "local_74 = (byte)((ulonglong)dVar2 >> 0x18)" (identifier "local_74") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x18" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_6c = (byte)((ulonglong)dVar2 >> 0x10);" (assignment_expression "local_6c = (byte)((ulonglong)dVar2 >> 0x10)" (identifier "local_6c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar2 >> 0x10" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "local_8c = (byte)((ulonglong)dVar2 >> 8);" (assignment_expression "local_8c = (byte)((ulonglong)dVar2 >> 8)" (identifier "local_8c") (= "=") (call_expression "(byte)((ulonglong)dVar2 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar2 >> 8)" (( "(") (binary_expression "(ulonglong)dVar2 >> 8" (cast_expression "(ulonglong)dVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar2")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x10] == 1) {\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }\n        else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }" (if "if") (parenthesized_expression "(param_2[0x10] == 1)" (( "(") (binary_expression "param_2[0x10] == 1" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[0x20] = SUB81(dVar2,0);\n          param_6[0x24] = bVar11;\n          param_6[0x21] = local_8c;\n          param_6[0x22] = local_6c;\n          param_6[0x23] = local_74;\n          param_6[0x25] = bVar10;\n          param_6[0x26] = local_7c;\n          param_6[0x27] = local_84;\n        }" ({ "{") (expression_statement "param_6[0x20] = SUB81(dVar2,0);" (assignment_expression "param_6[0x20] = SUB81(dVar2,0)" (subscript_expression "param_6[0x20]" (identifier "param_6") ([ "[") (number_literal "0x20") (] "]")) (= "=") (call_expression "SUB81(dVar2,0)" (identifier "SUB81") (argument_list "(dVar2,0)" (( "(") (identifier "dVar2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[0x24] = bVar11;" (assignment_expression "param_6[0x24] = bVar11" (subscript_expression "param_6[0x24]" (identifier "param_6") ([ "[") (number_literal "0x24") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0x21] = local_8c;" (assignment_expression "param_6[0x21] = local_8c" (subscript_expression "param_6[0x21]" (identifier "param_6") ([ "[") (number_literal "0x21") (] "]")) (= "=") (identifier "local_8c")) (; ";")) (expression_statement "param_6[0x22] = local_6c;" (assignment_expression "param_6[0x22] = local_6c" (subscript_expression "param_6[0x22]" (identifier "param_6") ([ "[") (number_literal "0x22") (] "]")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "param_6[0x23] = local_74;" (assignment_expression "param_6[0x23] = local_74" (subscript_expression "param_6[0x23]" (identifier "param_6") ([ "[") (number_literal "0x23") (] "]")) (= "=") (identifier "local_74")) (; ";")) (expression_statement "param_6[0x25] = bVar10;" (assignment_expression "param_6[0x25] = bVar10" (subscript_expression "param_6[0x25]" (identifier "param_6") ([ "[") (number_literal "0x25") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0x26] = local_7c;" (assignment_expression "param_6[0x26] = local_7c" (subscript_expression "param_6[0x26]" (identifier "param_6") ([ "[") (number_literal "0x26") (] "]")) (= "=") (identifier "local_7c")) (; ";")) (expression_statement "param_6[0x27] = local_84;" (assignment_expression "param_6[0x27] = local_84" (subscript_expression "param_6[0x27]" (identifier "param_6") ([ "[") (number_literal "0x27") (] "]")) (= "=") (identifier "local_84")) (; ";")) (} "}")) (else_clause "else {\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }" (else "else") (compound_statement "{\n          param_6[0x23] = bVar11;\n          param_6[0x27] = SUB81(dVar2,0);\n          param_6[0x20] = local_84;\n          param_6[0x21] = local_7c;\n          param_6[0x22] = bVar10;\n          param_6[0x24] = local_74;\n          param_6[0x25] = local_6c;\n          param_6[0x26] = local_8c;\n        }" ({ "{") (expression_statement "param_6[0x23] = bVar11;" (assignment_expression "param_6[0x23] = bVar11" (subscript_expression "param_6[0x23]" (identifier "param_6") ([ "[") (number_literal "0x23") (] "]")) (= "=") (identifier "bVar11")) (; ";")) (expression_statement "param_6[0x27] = SUB81(dVar2,0);" (assignment_expression "param_6[0x27] = SUB81(dVar2,0)" (subscript_expression "param_6[0x27]" (identifier "param_6") ([ "[") (number_literal "0x27") (] "]")) (= "=") (call_expression "SUB81(dVar2,0)" (identifier "SUB81") (argument_list "(dVar2,0)" (( "(") (identifier "dVar2") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[0x20] = local_84;" (assignment_expression "param_6[0x20] = local_84" (subscript_expression "param_6[0x20]" (identifier "param_6") ([ "[") (number_literal "0x20") (] "]")) (= "=") (identifier "local_84")) (; ";")) (expression_statement "param_6[0x21] = local_7c;" (assignment_expression "param_6[0x21] = local_7c" (subscript_expression "param_6[0x21]" (identifier "param_6") ([ "[") (number_literal "0x21") (] "]")) (= "=") (identifier "local_7c")) (; ";")) (expression_statement "param_6[0x22] = bVar10;" (assignment_expression "param_6[0x22] = bVar10" (subscript_expression "param_6[0x22]" (identifier "param_6") ([ "[") (number_literal "0x22") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "param_6[0x24] = local_74;" (assignment_expression "param_6[0x24] = local_74" (subscript_expression "param_6[0x24]" (identifier "param_6") ([ "[") (number_literal "0x24") (] "]")) (= "=") (identifier "local_74")) (; ";")) (expression_statement "param_6[0x25] = local_6c;" (assignment_expression "param_6[0x25] = local_6c" (subscript_expression "param_6[0x25]" (identifier "param_6") ([ "[") (number_literal "0x25") (] "]")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "param_6[0x26] = local_8c;" (assignment_expression "param_6[0x26] = local_8c" (subscript_expression "param_6[0x26]" (identifier "param_6") ([ "[") (number_literal "0x26") (] "]")) (= "=") (identifier "local_8c")) (; ";")) (} "}")))) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" (identifier "local_64") (= "=") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_6 = param_6 + param_2[9] + 0x28;" (assignment_expression "param_6 = param_6 + param_2[9] + 0x28" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[9] + 0x28" (binary_expression "param_6 + param_2[9]" (identifier "param_6") (+ "+") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x298) * 8" (identifier "param_5") (+ "+") (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")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_64 != param_3)" (( "(") (binary_expression "local_64 != param_3" (identifier "local_64") (!= "!=") (identifier "param_3")) () ")")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar16 < 0x41) {\n    uVar9 = uVar16;\n  }" (if "if") (parenthesized_expression "(uVar16 < 0x41)" (( "(") (binary_expression "uVar16 < 0x41" (identifier "uVar16") (< "<") (number_literal "0x41")) () ")")) (compound_statement "{\n    uVar9 = uVar16;\n  }" ({ "{") (expression_statement "uVar9 = uVar16;" (assignment_expression "uVar9 = uVar16" (identifier "uVar9") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "bVar10 = (byte)(uVar9 - 1);" (assignment_expression "bVar10 = (byte)(uVar9 - 1)" (identifier "bVar10") (= "=") (call_expression "(byte)(uVar9 - 1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar9 - 1)" (( "(") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar11 = bVar10 & 0x1f;" (assignment_expression "bVar11 = bVar10 & 0x1f" (identifier "bVar11") (= "=") (binary_expression "bVar10 & 0x1f" (identifier "bVar10") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar7 = 2 << (bVar10 & 0x1f);" (assignment_expression "uVar7 = 2 << (bVar10 & 0x1f)" (identifier "uVar7") (= "=") (binary_expression "2 << (bVar10 & 0x1f)" (number_literal "2") (<< "<<") (parenthesized_expression "(bVar10 & 0x1f)" (( "(") (binary_expression "bVar10 & 0x1f" (identifier "bVar10") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" (identifier "uVar8") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11;" (assignment_expression "uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11" (identifier "uVar18") (= "=") (binary_expression "0 << bVar11 | 2U >> 0x20 - bVar11" (binary_expression "0 << bVar11" (number_literal "0") (<< "<<") (identifier "bVar11")) (| "|") (binary_expression "2U >> 0x20 - bVar11" (number_literal "2U") (>> ">>") (binary_expression "0x20 - bVar11" (number_literal "0x20") (- "-") (identifier "bVar11"))))) (; ";")) (if_statement "if ((uVar9 - 1 & 0x20) != 0) {\n    uVar8 = 0;\n    uVar18 = uVar7;\n  }" (if "if") (parenthesized_expression "((uVar9 - 1 & 0x20) != 0)" (( "(") (binary_expression "(uVar9 - 1 & 0x20) != 0" (parenthesized_expression "(uVar9 - 1 & 0x20)" (( "(") (binary_expression "uVar9 - 1 & 0x20" (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar8 = 0;\n    uVar18 = uVar7;\n  }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = uVar7;" (assignment_expression "uVar18 = uVar7" (identifier "uVar18") (= "=") (identifier "uVar7")) (; ";")) (} "}"))) (expression_statement "local_4c = uVar8 - 1;" (assignment_expression "local_4c = uVar8 - 1" (identifier "local_4c") (= "=") (binary_expression "uVar8 - 1" (identifier "uVar8") (- "-") (number_literal "1"))) (; ";")) (expression_statement "iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0);" (assignment_expression "iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0)" (identifier "iStack_48") (= "=") (binary_expression "(uVar18 - 1) + (uint)(uVar8 != 0)" (parenthesized_expression "(uVar18 - 1)" (( "(") (binary_expression "uVar18 - 1" (identifier "uVar18") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(uVar8 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar8 != 0)" (( "(") (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (labeled_statement "LAB_0013be09:\n  if (param_3 < 1) {\n    return;\n  }" (statement_identifier "LAB_0013be09") (: ":") (if_statement "if (param_3 < 1) {\n    return;\n  }" (if "if") (parenthesized_expression "(param_3 < 1)" (( "(") (binary_expression "param_3 < 1" (identifier "param_3") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    local_5c = 0;\n    iVar13 = *(int *)(param_1 + 0x2a8);\n    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);\n    if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar9 = param_2[0x14];\n    if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }\n    while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n    param_6 = param_6 + param_2[9];\n    if (local_40 == param_3) {\n      return;\n    }\n    uVar16 = *param_2;\n  } while( true );" (do "do") (compound_statement "{\n    local_5c = 0;\n    iVar13 = *(int *)(param_1 + 0x2a8);\n    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);\n    if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }\n    uVar9 = param_2[0x14];\n    if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }\n    if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }\n    while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }\n    local_40 = local_40 + 1;\n    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;\n    param_6 = param_6 + param_2[9];\n    if (local_40 == param_3) {\n      return;\n    }\n    uVar16 = *param_2;\n  }" ({ "{") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 8) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar13 + 8) * 8)" (( "(") (binary_expression "param_5 + *(int *)(iVar13 + 8) * 8" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar13 + 8) * 8" (pointer_expression "*(int *)(iVar13 + 8)" (* "*") (cast_expression "(int *)(iVar13 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (0.0 < dVar2) {\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }" (if "if") (parenthesized_expression "(0.0 < dVar2)" (( "(") (binary_expression "0.0 < dVar2" (number_literal "0.0") (< "<") (identifier "dVar2")) () ")")) (compound_statement "{\n      fVar1 = (float)CONCAT44(iStack_48,local_4c);\n      if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }\n      local_5c = -1;\n      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n      if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }\n    }" ({ "{") (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_48,local_4c)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_48,local_4c)" (identifier "CONCAT44") (argument_list "(iStack_48,local_4c)" (( "(") (identifier "iStack_48") (, ",") (identifier "local_4c") () ")"))))) (; ";")) (if_statement "if (iStack_48 < 0) {\n        fVar1 = fVar1 + DAT_0029f714;\n      }" (if "if") (parenthesized_expression "(iStack_48 < 0)" (( "(") (binary_expression "iStack_48 < 0" (identifier "iStack_48") (< "<") (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_5c = -1;" (assignment_expression "local_5c = -1" (identifier "local_5c") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710" (identifier "dVar2") (= "=") (binary_expression "((double)fVar1 * dVar2) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar2)" (( "(") (binary_expression "(double)fVar1 * dVar2" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (identifier "dVar2")) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar2 < (double)DAT_0029f714) {\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar2 < (double)DAT_0029f714" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n        dVar2 = dVar2 + (double)DAT_0029f124;\n        if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }\n      }" ({ "{") (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" (identifier "dVar2") (= "=") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }\n        else {\n          local_5c = (longlong)ROUND(dVar2);\n        }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n        }" ({ "{") (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" (identifier "lVar3") (= "=") (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar2 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar2 - (double)DAT_0029f134" (identifier "dVar2") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" (identifier "local_5c") (= "=") (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" (identifier "CONCAT44") (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" (( "(") (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar3")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          local_5c = (longlong)ROUND(dVar2);\n        }" (else "else") (compound_statement "{\n          local_5c = (longlong)ROUND(dVar2);\n        }" ({ "{") (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" (identifier "local_5c") (= "=") (cast_expression "(longlong)ROUND(dVar2)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar2)" (identifier "ROUND") (argument_list "(dVar2)" (( "(") (identifier "dVar2") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" (identifier "uVar9") (= "=") (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (if_statement "if (uVar9 == 0) {\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      param_2[0x14] = 8;\n      uVar9 = 8;\n    }" ({ "{") (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" (identifier "uVar9") (= "=") (number_literal "8")) (; ";")) (} "}"))) (if_statement "if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" (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")) () ")")) (compound_statement "{\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (!NAN(dVar2)) goto LAB_0013bffe;\n      local_5c = 0;\n    }" ({ "{") (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (binary_expression "param_5 + *(int *)(iVar13 + 0x14) * 8" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" (* "*") (cast_expression "(int *)(iVar13 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x14)" (( "(") (binary_expression "iVar13 + 0x14" (identifier "iVar13") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (!NAN(dVar2)) goto LAB_0013bffe;" (if "if") (parenthesized_expression "(!NAN(dVar2))" (( "(") (unary_expression "!NAN(dVar2)" (! "!") (call_expression "NAN(dVar2)" (identifier "NAN") (argument_list "(dVar2)" (( "(") (identifier "dVar2") () ")")))) () ")")) (goto_statement "goto LAB_0013bffe;" (goto "goto") (statement_identifier "LAB_0013bffe") (; ";"))) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" (else "else") (compound_statement "{\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" ({ "{") (do_statement "do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);" (do "do") (compound_statement "{\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }\n        uVar9 = param_2[0x14];\n      }" ({ "{") (while_statement "while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013bfd2;\n        }" ({ "{") (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" (identifier "uVar18") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }" (if "if") (parenthesized_expression "(uVar16 <= uVar9)" (( "(") (binary_expression "uVar16 <= uVar9" (identifier "uVar16") (<= "<=") (identifier "uVar9")) () ")")) (compound_statement "{\n            uVar18 = uVar16;\n          }" ({ "{") (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" (identifier "uVar18") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "uVar8 = uVar16 - uVar18;" (assignment_expression "uVar8 = uVar16 - uVar18" (identifier "uVar8") (= "=") (binary_expression "uVar16 - uVar18" (identifier "uVar16") (- "-") (identifier "uVar18"))) (; ";")) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }" (if "if") (parenthesized_expression "(-1 < (int)uVar8)" (( "(") (binary_expression "-1 < (int)uVar8" (number_literal "-1") (< "<") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) () ")")) (compound_statement "{\n            uVar16 = uVar8;\n          }" ({ "{") (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" (identifier "uVar16") (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (if_statement "if (uVar9 == 8) {\n            *param_6 = 0;\n          }" (if "if") (parenthesized_expression "(uVar9 == 8)" (( "(") (binary_expression "uVar9 == 8" (identifier "uVar9") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n            *param_6 = 0;\n          }" ({ "{") (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar9 = uVar9 - uVar18;" (assignment_expression "uVar9 = uVar9 - uVar18" (identifier "uVar9") (= "=") (binary_expression "uVar9 - uVar18" (identifier "uVar9") (- "-") (identifier "uVar18"))) (; ";")) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" (identifier "bVar11") (= "=") (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar16")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (identifier "uVar7") (= "=") (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_5c")) (>> ">>") (identifier "bVar11")) (| "|") (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" (identifier "local_5c") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar11" (number_literal "0x20") (- "-") (identifier "bVar11"))))) (; ";")) (if_statement "if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" (if "if") (parenthesized_expression "((uVar16 & 0x20) != 0)" (( "(") (binary_expression "(uVar16 & 0x20) != 0" (parenthesized_expression "(uVar16 & 0x20)" (( "(") (binary_expression "uVar16 & 0x20" (identifier "uVar16") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" ({ "{") (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (identifier "uVar7") (= "=") (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._4_4_" (identifier "local_5c") (. ".") (field_identifier "_4_4_")) (>> ">>") (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")) () ")")))) (; ";")) (} "}"))) (expression_statement "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (identifier "bVar11") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7)" (( "(") (binary_expression "~(-1 << ((byte)uVar18 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar18 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar18 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar18 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar18 & 0x1f)" (( "(") (binary_expression "(byte)uVar18 & 0x1f" (cast_expression "(byte)uVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar18")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar7")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar9 & 0x1f)" (( "(") (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar9")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }" (if "if") (parenthesized_expression "((uVar9 & 0x20) != 0)" (( "(") (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" (( "(") (binary_expression "uVar9 & 0x20" (identifier "uVar9") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            bVar11 = 0;\n          }" ({ "{") (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (| "|") (identifier "bVar11"))) (; ";")) (if_statement "if (uVar9 != 0) break;" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" (identifier "param_6") (= "=") (binary_expression "param_6 + 1" (identifier "param_6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" (identifier "uVar9") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar8 < 1) goto LAB_0013bfd2;" (if "if") (parenthesized_expression "((int)uVar8 < 1)" (( "(") (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0013bfd2;" (goto "goto") (statement_identifier "LAB_0013bfd2") (; ";"))) (} "}"))) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" (identifier "uVar9") (= "=") (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar8)" (( "(") (binary_expression "0 < (int)uVar8" (number_literal "0") (< "<") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) () ")")) (; ";")) (labeled_statement "LAB_0013bfd2:\n      iVar13 = *(int *)(param_1 + 0x2a8);" (statement_identifier "LAB_0013bfd2") (: ":") (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")) () ")"))))) (; ";"))) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" (identifier "uVar16") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (binary_expression "param_5 + *(int *)(iVar13 + 0x14) * 8" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar13 + 0x14) * 8" (pointer_expression "*(int *)(iVar13 + 0x14)" (* "*") (cast_expression "(int *)(iVar13 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x14)" (( "(") (binary_expression "iVar13 + 0x14" (identifier "iVar13") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(NAN(dVar2))" (( "(") (call_expression "NAN(dVar2)" (identifier "NAN") (argument_list "(dVar2)" (( "(") (identifier "dVar2") () ")"))) () ")")) (compound_statement "{\n        local_5c = 0;\n      }" ({ "{") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" (else "else") (compound_statement "{\nLAB_0013bffe:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" ({ "{") (labeled_statement "LAB_0013bffe:\n        local_5c = 0;" (statement_identifier "LAB_0013bffe") (: ":") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(0.0 < dVar2)" (( "(") (binary_expression "0.0 < dVar2" (number_literal "0.0") (< "<") (identifier "dVar2")) () ")")) (compound_statement "{\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" ({ "{") (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_48,local_4c)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_48,local_4c)" (identifier "CONCAT44") (argument_list "(iStack_48,local_4c)" (( "(") (identifier "iStack_48") (, ",") (identifier "local_4c") () ")"))))) (; ";")) (if_statement "if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }" (if "if") (parenthesized_expression "(iStack_48 < 0)" (( "(") (binary_expression "iStack_48 < 0" (identifier "iStack_48") (< "<") (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_5c = -1;" (assignment_expression "local_5c = -1" (identifier "local_5c") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710" (identifier "dVar2") (= "=") (binary_expression "((double)fVar1 * dVar2) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar2)" (( "(") (binary_expression "(double)fVar1 * dVar2" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (identifier "dVar2")) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar2 < (double)DAT_0029f714" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" ({ "{") (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" (identifier "dVar2") (= "=") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }" ({ "{") (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" (identifier "lVar3") (= "=") (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar2 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar2 - (double)DAT_0029f134" (identifier "dVar2") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" (identifier "local_5c") (= "=") (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" (identifier "CONCAT44") (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" (( "(") (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar3")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" (else "else") (compound_statement "{\n              local_5c = (longlong)ROUND(dVar2);\n            }" ({ "{") (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" (identifier "local_5c") (= "=") (cast_expression "(longlong)ROUND(dVar2)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar2)" (identifier "ROUND") (argument_list "(dVar2)" (( "(") (identifier "dVar2") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (} "}")))) (if_statement "if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" ({ "{") (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" (identifier "uVar9") (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((int)uVar16 < 1) {\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" (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")) () ")")) (compound_statement "{\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (!NAN(dVar2)) goto LAB_0013c1b8;\n      local_5c = 0;\n    }" ({ "{") (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (binary_expression "param_5 + *(int *)(iVar13 + 0x20) * 8" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" (* "*") (cast_expression "(int *)(iVar13 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x20)" (( "(") (binary_expression "iVar13 + 0x20" (identifier "iVar13") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (!NAN(dVar2)) goto LAB_0013c1b8;" (if "if") (parenthesized_expression "(!NAN(dVar2))" (( "(") (unary_expression "!NAN(dVar2)" (! "!") (call_expression "NAN(dVar2)" (identifier "NAN") (argument_list "(dVar2)" (( "(") (identifier "dVar2") () ")")))) () ")")) (goto_statement "goto LAB_0013c1b8;" (goto "goto") (statement_identifier "LAB_0013c1b8") (; ";"))) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" (else "else") (compound_statement "{\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);\n      if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" ({ "{") (do_statement "do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);" (do "do") (compound_statement "{\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }\n        uVar9 = param_2[0x14];\n      }" ({ "{") (while_statement "while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c18c;\n        }" ({ "{") (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" (identifier "uVar18") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }" (if "if") (parenthesized_expression "(uVar16 <= uVar9)" (( "(") (binary_expression "uVar16 <= uVar9" (identifier "uVar16") (<= "<=") (identifier "uVar9")) () ")")) (compound_statement "{\n            uVar18 = uVar16;\n          }" ({ "{") (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" (identifier "uVar18") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "uVar8 = uVar16 - uVar18;" (assignment_expression "uVar8 = uVar16 - uVar18" (identifier "uVar8") (= "=") (binary_expression "uVar16 - uVar18" (identifier "uVar16") (- "-") (identifier "uVar18"))) (; ";")) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }" (if "if") (parenthesized_expression "(-1 < (int)uVar8)" (( "(") (binary_expression "-1 < (int)uVar8" (number_literal "-1") (< "<") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) () ")")) (compound_statement "{\n            uVar16 = uVar8;\n          }" ({ "{") (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" (identifier "uVar16") (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (if_statement "if (uVar9 == 8) {\n            *param_6 = 0;\n          }" (if "if") (parenthesized_expression "(uVar9 == 8)" (( "(") (binary_expression "uVar9 == 8" (identifier "uVar9") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n            *param_6 = 0;\n          }" ({ "{") (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar9 = uVar9 - uVar18;" (assignment_expression "uVar9 = uVar9 - uVar18" (identifier "uVar9") (= "=") (binary_expression "uVar9 - uVar18" (identifier "uVar9") (- "-") (identifier "uVar18"))) (; ";")) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" (identifier "bVar11") (= "=") (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar16")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (identifier "uVar7") (= "=") (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_5c")) (>> ">>") (identifier "bVar11")) (| "|") (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" (identifier "local_5c") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar11" (number_literal "0x20") (- "-") (identifier "bVar11"))))) (; ";")) (if_statement "if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" (if "if") (parenthesized_expression "((uVar16 & 0x20) != 0)" (( "(") (binary_expression "(uVar16 & 0x20) != 0" (parenthesized_expression "(uVar16 & 0x20)" (( "(") (binary_expression "uVar16 & 0x20" (identifier "uVar16") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" ({ "{") (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (identifier "uVar7") (= "=") (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._4_4_" (identifier "local_5c") (. ".") (field_identifier "_4_4_")) (>> ">>") (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")) () ")")))) (; ";")) (} "}"))) (expression_statement "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (identifier "bVar11") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7)" (( "(") (binary_expression "~(-1 << ((byte)uVar18 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar18 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar18 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar18 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar18 & 0x1f)" (( "(") (binary_expression "(byte)uVar18 & 0x1f" (cast_expression "(byte)uVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar18")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar7")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar9 & 0x1f)" (( "(") (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar9")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }" (if "if") (parenthesized_expression "((uVar9 & 0x20) != 0)" (( "(") (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" (( "(") (binary_expression "uVar9 & 0x20" (identifier "uVar9") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            bVar11 = 0;\n          }" ({ "{") (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (| "|") (identifier "bVar11"))) (; ";")) (if_statement "if (uVar9 != 0) break;" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" (identifier "param_6") (= "=") (binary_expression "param_6 + 1" (identifier "param_6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" (identifier "uVar9") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar8 < 1) goto LAB_0013c18c;" (if "if") (parenthesized_expression "((int)uVar8 < 1)" (( "(") (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0013c18c;" (goto "goto") (statement_identifier "LAB_0013c18c") (; ";"))) (} "}"))) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" (identifier "uVar9") (= "=") (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar8)" (( "(") (binary_expression "0 < (int)uVar8" (number_literal "0") (< "<") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) () ")")) (; ";")) (labeled_statement "LAB_0013c18c:\n      iVar13 = *(int *)(param_1 + 0x2a8);" (statement_identifier "LAB_0013c18c") (: ":") (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")) () ")"))))) (; ";"))) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" (identifier "uVar16") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (binary_expression "param_5 + *(int *)(iVar13 + 0x20) * 8" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar13 + 0x20) * 8" (pointer_expression "*(int *)(iVar13 + 0x20)" (* "*") (cast_expression "(int *)(iVar13 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x20)" (( "(") (binary_expression "iVar13 + 0x20" (identifier "iVar13") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (NAN(dVar2)) {\n        local_5c = 0;\n      }\n      else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(NAN(dVar2))" (( "(") (call_expression "NAN(dVar2)" (identifier "NAN") (argument_list "(dVar2)" (( "(") (identifier "dVar2") () ")"))) () ")")) (compound_statement "{\n        local_5c = 0;\n      }" ({ "{") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" (else "else") (compound_statement "{\nLAB_0013c1b8:\n        local_5c = 0;\n        if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" ({ "{") (labeled_statement "LAB_0013c1b8:\n        local_5c = 0;" (statement_identifier "LAB_0013c1b8") (: ":") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (0.0 < dVar2) {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(0.0 < dVar2)" (( "(") (binary_expression "0.0 < dVar2" (number_literal "0.0") (< "<") (identifier "dVar2")) () ")")) (compound_statement "{\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" ({ "{") (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_48,local_4c)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_48,local_4c)" (identifier "CONCAT44") (argument_list "(iStack_48,local_4c)" (( "(") (identifier "iStack_48") (, ",") (identifier "local_4c") () ")"))))) (; ";")) (if_statement "if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }" (if "if") (parenthesized_expression "(iStack_48 < 0)" (( "(") (binary_expression "iStack_48 < 0" (identifier "iStack_48") (< "<") (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_5c = -1;" (assignment_expression "local_5c = -1" (identifier "local_5c") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710" (identifier "dVar2") (= "=") (binary_expression "((double)fVar1 * dVar2) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar2)" (( "(") (binary_expression "(double)fVar1 * dVar2" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (identifier "dVar2")) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar2 < (double)DAT_0029f714" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" ({ "{") (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" (identifier "dVar2") (= "=") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }" ({ "{") (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" (identifier "lVar3") (= "=") (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar2 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar2 - (double)DAT_0029f134" (identifier "dVar2") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" (identifier "local_5c") (= "=") (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" (identifier "CONCAT44") (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" (( "(") (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar3")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" (else "else") (compound_statement "{\n              local_5c = (longlong)ROUND(dVar2);\n            }" ({ "{") (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" (identifier "local_5c") (= "=") (cast_expression "(longlong)ROUND(dVar2)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar2)" (identifier "ROUND") (argument_list "(dVar2)" (( "(") (identifier "dVar2") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (} "}")))) (if_statement "if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" ({ "{") (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" (identifier "uVar9") (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((int)uVar16 < 1) {\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" (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")) () ")")) (compound_statement "{\n      local_5c = 0;\n      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;\n    }" ({ "{") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;" (if "if") (parenthesized_expression "(*(int *)(iVar13 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar13 + 0x28) != 0" (pointer_expression "*(int *)(iVar13 + 0x28)" (* "*") (cast_expression "(int *)(iVar13 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x28)" (( "(") (binary_expression "iVar13 + 0x28" (identifier "iVar13") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013c36e;" (goto "goto") (statement_identifier "LAB_0013c36e") (; ";"))) (} "}")) (else_clause "else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" (else "else") (compound_statement "{\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c33c:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }\n    }" ({ "{") (do_statement "do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);" (do "do") (compound_statement "{\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }\n        uVar9 = param_2[0x14];\n      }" ({ "{") (while_statement "while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c33c;\n        }" ({ "{") (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" (identifier "uVar18") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }" (if "if") (parenthesized_expression "(uVar16 <= uVar9)" (( "(") (binary_expression "uVar16 <= uVar9" (identifier "uVar16") (<= "<=") (identifier "uVar9")) () ")")) (compound_statement "{\n            uVar18 = uVar16;\n          }" ({ "{") (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" (identifier "uVar18") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "uVar8 = uVar16 - uVar18;" (assignment_expression "uVar8 = uVar16 - uVar18" (identifier "uVar8") (= "=") (binary_expression "uVar16 - uVar18" (identifier "uVar16") (- "-") (identifier "uVar18"))) (; ";")) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }" (if "if") (parenthesized_expression "(-1 < (int)uVar8)" (( "(") (binary_expression "-1 < (int)uVar8" (number_literal "-1") (< "<") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) () ")")) (compound_statement "{\n            uVar16 = uVar8;\n          }" ({ "{") (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" (identifier "uVar16") (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (if_statement "if (uVar9 == 8) {\n            *param_6 = 0;\n          }" (if "if") (parenthesized_expression "(uVar9 == 8)" (( "(") (binary_expression "uVar9 == 8" (identifier "uVar9") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n            *param_6 = 0;\n          }" ({ "{") (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar9 = uVar9 - uVar18;" (assignment_expression "uVar9 = uVar9 - uVar18" (identifier "uVar9") (= "=") (binary_expression "uVar9 - uVar18" (identifier "uVar9") (- "-") (identifier "uVar18"))) (; ";")) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" (identifier "bVar11") (= "=") (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar16")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (identifier "uVar7") (= "=") (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_5c")) (>> ">>") (identifier "bVar11")) (| "|") (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" (identifier "local_5c") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar11" (number_literal "0x20") (- "-") (identifier "bVar11"))))) (; ";")) (if_statement "if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" (if "if") (parenthesized_expression "((uVar16 & 0x20) != 0)" (( "(") (binary_expression "(uVar16 & 0x20) != 0" (parenthesized_expression "(uVar16 & 0x20)" (( "(") (binary_expression "uVar16 & 0x20" (identifier "uVar16") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" ({ "{") (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (identifier "uVar7") (= "=") (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._4_4_" (identifier "local_5c") (. ".") (field_identifier "_4_4_")) (>> ">>") (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")) () ")")))) (; ";")) (} "}"))) (expression_statement "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (identifier "bVar11") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7)" (( "(") (binary_expression "~(-1 << ((byte)uVar18 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar18 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar18 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar18 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar18 & 0x1f)" (( "(") (binary_expression "(byte)uVar18 & 0x1f" (cast_expression "(byte)uVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar18")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar7")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar9 & 0x1f)" (( "(") (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar9")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }" (if "if") (parenthesized_expression "((uVar9 & 0x20) != 0)" (( "(") (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" (( "(") (binary_expression "uVar9 & 0x20" (identifier "uVar9") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            bVar11 = 0;\n          }" ({ "{") (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (| "|") (identifier "bVar11"))) (; ";")) (if_statement "if (uVar9 != 0) break;" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" (identifier "param_6") (= "=") (binary_expression "param_6 + 1" (identifier "param_6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" (identifier "uVar9") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar8 < 1) goto LAB_0013c33c;" (if "if") (parenthesized_expression "((int)uVar8 < 1)" (( "(") (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0013c33c;" (goto "goto") (statement_identifier "LAB_0013c33c") (; ";"))) (} "}"))) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" (identifier "uVar9") (= "=") (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar8)" (( "(") (binary_expression "0 < (int)uVar8" (number_literal "0") (< "<") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) () ")")) (; ";")) (labeled_statement "LAB_0013c33c:\n      local_5c = 0;" (statement_identifier "LAB_0013c33c") (: ":") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" (identifier "uVar16") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (*(int *)(iVar13 + 0x28) != 0) {\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar13 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar13 + 0x28) != 0" (pointer_expression "*(int *)(iVar13 + 0x28)" (* "*") (cast_expression "(int *)(iVar13 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x28)" (( "(") (binary_expression "iVar13 + 0x28" (identifier "iVar13") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);\n        if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }\n      }" ({ "{") (labeled_statement "LAB_0013c36e:\n        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);" (statement_identifier "LAB_0013c36e") (: ":") (expression_statement "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);" (assignment_expression "dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8)" (identifier "dVar2") (= "=") (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x2c) * 8)" (( "(") (binary_expression "param_5 + *(int *)(iVar13 + 0x2c) * 8" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar13 + 0x2c) * 8" (pointer_expression "*(int *)(iVar13 + 0x2c)" (* "*") (cast_expression "(int *)(iVar13 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x2c)" (( "(") (binary_expression "iVar13 + 0x2c" (identifier "iVar13") (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";"))) (if_statement "if (dVar2 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(dVar2 <= 0.0)" (( "(") (binary_expression "dVar2 <= 0.0" (identifier "dVar2") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n          local_5c = 0;\n        }" ({ "{") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" (else "else") (compound_statement "{\n          fVar1 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }\n          local_5c = -1;\n          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;\n          if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }\n        }" ({ "{") (expression_statement "fVar1 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_48,local_4c)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_48,local_4c)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_48,local_4c)" (identifier "CONCAT44") (argument_list "(iStack_48,local_4c)" (( "(") (identifier "iStack_48") (, ",") (identifier "local_4c") () ")"))))) (; ";")) (if_statement "if (iStack_48 < 0) {\n            fVar1 = fVar1 + DAT_0029f714;\n          }" (if "if") (parenthesized_expression "(iStack_48 < 0)" (( "(") (binary_expression "iStack_48 < 0" (identifier "iStack_48") (< "<") (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_5c = -1;" (assignment_expression "local_5c = -1" (identifier "local_5c") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;" (assignment_expression "dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710" (identifier "dVar2") (= "=") (binary_expression "((double)fVar1 * dVar2) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar2)" (( "(") (binary_expression "(double)fVar1 * dVar2" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (identifier "dVar2")) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar2 < (double)DAT_0029f714) {\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" (if "if") (parenthesized_expression "(dVar2 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar2 < (double)DAT_0029f714" (identifier "dVar2") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n            dVar2 = dVar2 + (double)DAT_0029f124;\n            if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }\n          }" ({ "{") (expression_statement "dVar2 = dVar2 + (double)DAT_0029f124;" (assignment_expression "dVar2 = dVar2 + (double)DAT_0029f124" (identifier "dVar2") (= "=") (binary_expression "dVar2 + (double)DAT_0029f124" (identifier "dVar2") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar2) {\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }\n            else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar2)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar2" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar2")) () ")")) (compound_statement "{\n              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);\n              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);\n            }" ({ "{") (expression_statement "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134)" (identifier "lVar3") (= "=") (cast_expression "(longlong)ROUND(dVar2 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar2 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar2 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar2 - (double)DAT_0029f134" (identifier "dVar2") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" (identifier "local_5c") (= "=") (call_expression "CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" (identifier "CONCAT44") (argument_list "((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3)" (( "(") (binary_expression "(int)((ulonglong)lVar3 >> 0x20) + -0x80000000" (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar3")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n              local_5c = (longlong)ROUND(dVar2);\n            }" (else "else") (compound_statement "{\n              local_5c = (longlong)ROUND(dVar2);\n            }" ({ "{") (expression_statement "local_5c = (longlong)ROUND(dVar2);" (assignment_expression "local_5c = (longlong)ROUND(dVar2)" (identifier "local_5c") (= "=") (cast_expression "(longlong)ROUND(dVar2)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar2)" (identifier "ROUND") (argument_list "(dVar2)" (( "(") (identifier "dVar2") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (} "}"))) (if_statement "if (uVar9 == 0) {\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_2[0x14] = 8;\n        uVar9 = 8;\n      }" ({ "{") (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" (identifier "uVar9") (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((int)uVar16 < 1) {\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }" (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")) () ")")) (compound_statement "{\n      local_5c = 0;\n      uVar18 = uVar16;\n      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;\n    }" ({ "{") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" (identifier "uVar18") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;" (if "if") (parenthesized_expression "(*(int *)(iVar13 + 0x34) == 4)" (( "(") (binary_expression "*(int *)(iVar13 + 0x34) == 4" (pointer_expression "*(int *)(iVar13 + 0x34)" (* "*") (cast_expression "(int *)(iVar13 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x34)" (( "(") (binary_expression "iVar13 + 0x34" (identifier "iVar13") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_0013ccd8;" (goto "goto") (statement_identifier "LAB_0013ccd8") (; ";"))) (} "}")) (else_clause "else {\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }" (else "else") (compound_statement "{\n      do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);\nLAB_0013c4f4:\n      local_5c = 0;\n      iVar13 = *(int *)(param_1 + 0x2a8);\n      uVar16 = *param_2;\n      if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }\n      uVar18 = uVar16;\n      if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }\n    }" ({ "{") (do_statement "do {\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      } while (0 < (int)uVar8);" (do "do") (compound_statement "{\n        while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }\n        uVar9 = param_2[0x14];\n      }" ({ "{") (while_statement "while( true ) {\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uVar18 = uVar9;\n          if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }\n          uVar8 = uVar16 - uVar18;\n          uVar16 = 0;\n          if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }\n          if (uVar9 == 8) {\n            *param_6 = 0;\n          }\n          uVar9 = uVar9 - uVar18;\n          bVar11 = (byte)uVar16 & 0x1f;\n          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n          if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }\n          param_2[0x14] = uVar9;\n          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n          if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }\n          *param_6 = *param_6 | bVar11;\n          if (uVar9 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x14] = 8;\n          uVar9 = 8;\n          if ((int)uVar8 < 1) goto LAB_0013c4f4;\n        }" ({ "{") (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" (identifier "uVar18") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (uVar16 <= uVar9) {\n            uVar18 = uVar16;\n          }" (if "if") (parenthesized_expression "(uVar16 <= uVar9)" (( "(") (binary_expression "uVar16 <= uVar9" (identifier "uVar16") (<= "<=") (identifier "uVar9")) () ")")) (compound_statement "{\n            uVar18 = uVar16;\n          }" ({ "{") (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" (identifier "uVar18") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "uVar8 = uVar16 - uVar18;" (assignment_expression "uVar8 = uVar16 - uVar18" (identifier "uVar8") (= "=") (binary_expression "uVar16 - uVar18" (identifier "uVar16") (- "-") (identifier "uVar18"))) (; ";")) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar8) {\n            uVar16 = uVar8;\n          }" (if "if") (parenthesized_expression "(-1 < (int)uVar8)" (( "(") (binary_expression "-1 < (int)uVar8" (number_literal "-1") (< "<") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) () ")")) (compound_statement "{\n            uVar16 = uVar8;\n          }" ({ "{") (expression_statement "uVar16 = uVar8;" (assignment_expression "uVar16 = uVar8" (identifier "uVar16") (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (if_statement "if (uVar9 == 8) {\n            *param_6 = 0;\n          }" (if "if") (parenthesized_expression "(uVar9 == 8)" (( "(") (binary_expression "uVar9 == 8" (identifier "uVar9") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n            *param_6 = 0;\n          }" ({ "{") (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar9 = uVar9 - uVar18;" (assignment_expression "uVar9 = uVar9 - uVar18" (identifier "uVar9") (= "=") (binary_expression "uVar9 - uVar18" (identifier "uVar9") (- "-") (identifier "uVar18"))) (; ";")) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" (identifier "bVar11") (= "=") (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar16")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (identifier "uVar7") (= "=") (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_5c")) (>> ">>") (identifier "bVar11")) (| "|") (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" (identifier "local_5c") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar11" (number_literal "0x20") (- "-") (identifier "bVar11"))))) (; ";")) (if_statement "if ((uVar16 & 0x20) != 0) {\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" (if "if") (parenthesized_expression "((uVar16 & 0x20) != 0)" (( "(") (binary_expression "(uVar16 & 0x20) != 0" (parenthesized_expression "(uVar16 & 0x20)" (( "(") (binary_expression "uVar16 & 0x20" (identifier "uVar16") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n          }" ({ "{") (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (identifier "uVar7") (= "=") (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._4_4_" (identifier "local_5c") (. ".") (field_identifier "_4_4_")) (>> ">>") (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")) () ")")))) (; ";")) (} "}"))) (expression_statement "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (identifier "bVar11") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar18 & 0x1f)) & uVar7)" (( "(") (binary_expression "~(-1 << ((byte)uVar18 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar18 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar18 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar18 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar18 & 0x1f)" (( "(") (binary_expression "(byte)uVar18 & 0x1f" (cast_expression "(byte)uVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar18")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar7")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar9 & 0x1f)" (( "(") (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar9")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar9 & 0x20) != 0) {\n            bVar11 = 0;\n          }" (if "if") (parenthesized_expression "((uVar9 & 0x20) != 0)" (( "(") (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" (( "(") (binary_expression "uVar9 & 0x20" (identifier "uVar9") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            bVar11 = 0;\n          }" ({ "{") (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (| "|") (identifier "bVar11"))) (; ";")) (if_statement "if (uVar9 != 0) break;" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" (identifier "param_6") (= "=") (binary_expression "param_6 + 1" (identifier "param_6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar9 = 8;" (assignment_expression "uVar9 = 8" (identifier "uVar9") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar8 < 1) goto LAB_0013c4f4;" (if "if") (parenthesized_expression "((int)uVar8 < 1)" (( "(") (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0013c4f4;" (goto "goto") (statement_identifier "LAB_0013c4f4") (; ";"))) (} "}"))) (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" (identifier "uVar9") (= "=") (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar8)" (( "(") (binary_expression "0 < (int)uVar8" (number_literal "0") (< "<") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) () ")")) (; ";")) (labeled_statement "LAB_0013c4f4:\n      local_5c = 0;" (statement_identifier "LAB_0013c4f4") (: ":") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" (identifier "uVar16") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (*(int *)(iVar13 + 0x34) == 4) {\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar13 + 0x34) == 4)" (( "(") (binary_expression "*(int *)(iVar13 + 0x34) == 4" (pointer_expression "*(int *)(iVar13 + 0x34)" (* "*") (cast_expression "(int *)(iVar13 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x34)" (( "(") (binary_expression "iVar13 + 0x34" (identifier "iVar13") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\nLAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);\n        if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }\n      }" ({ "{") (labeled_statement "LAB_0013ccd8:\n        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);" (statement_identifier "LAB_0013ccd8") (: ":") (expression_statement "fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);" (assignment_expression "fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" (identifier "fVar1") (= "=") (binary_expression "DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" (identifier "DAT_0029f710") (- "-") (cast_expression "(float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" (* "*") (cast_expression "(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar13 + 0x38) * 8)" (( "(") (binary_expression "param_5 + *(int *)(iVar13 + 0x38) * 8" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar13 + 0x38) * 8" (pointer_expression "*(int *)(iVar13 + 0x38)" (* "*") (cast_expression "(int *)(iVar13 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x38)" (( "(") (binary_expression "iVar13 + 0x38" (identifier "iVar13") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))))) (; ";"))) (if_statement "if (fVar1 <= 0.0) {\n          local_5c = 0;\n        }\n        else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(fVar1 <= 0.0)" (( "(") (binary_expression "fVar1 <= 0.0" (identifier "fVar1") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n          local_5c = 0;\n        }" ({ "{") (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }" (else "else") (compound_statement "{\n          fVar4 = (float)CONCAT44(iStack_48,local_4c);\n          if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }\n          local_5c = -1;\n          fVar1 = (fVar4 * fVar1) / DAT_0029f710;\n          if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }\n          }\n        }" ({ "{") (expression_statement "fVar4 = (float)CONCAT44(iStack_48,local_4c);" (assignment_expression "fVar4 = (float)CONCAT44(iStack_48,local_4c)" (identifier "fVar4") (= "=") (cast_expression "(float)CONCAT44(iStack_48,local_4c)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_48,local_4c)" (identifier "CONCAT44") (argument_list "(iStack_48,local_4c)" (( "(") (identifier "iStack_48") (, ",") (identifier "local_4c") () ")"))))) (; ";")) (if_statement "if (iStack_48 < 0) {\n            fVar4 = fVar4 + DAT_0029f714;\n          }" (if "if") (parenthesized_expression "(iStack_48 < 0)" (( "(") (binary_expression "iStack_48 < 0" (identifier "iStack_48") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            fVar4 = fVar4 + DAT_0029f714;\n          }" ({ "{") (expression_statement "fVar4 = fVar4 + DAT_0029f714;" (assignment_expression "fVar4 = fVar4 + DAT_0029f714" (identifier "fVar4") (= "=") (binary_expression "fVar4 + DAT_0029f714" (identifier "fVar4") (+ "+") (identifier "DAT_0029f714"))) (; ";")) (} "}"))) (expression_statement "local_5c = -1;" (assignment_expression "local_5c = -1" (identifier "local_5c") (= "=") (number_literal "-1")) (; ";")) (expression_statement "fVar1 = (fVar4 * fVar1) / DAT_0029f710;" (assignment_expression "fVar1 = (fVar4 * fVar1) / DAT_0029f710" (identifier "fVar1") (= "=") (binary_expression "(fVar4 * fVar1) / DAT_0029f710" (parenthesized_expression "(fVar4 * fVar1)" (( "(") (binary_expression "fVar4 * fVar1" (identifier "fVar4") (* "*") (identifier "fVar1")) () ")")) (/ "/") (identifier "DAT_0029f710"))) (; ";")) (if_statement "if (fVar1 < DAT_0029f714) {\n            fVar1 = fVar1 + DAT_0029f124;\n            if (DAT_0029f134 <= fVar1) {\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (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              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (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              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }\n            else {\n              local_5c = (longlong)ROUND(fVar1);\n            }" (if "if") (parenthesized_expression "(DAT_0029f134 <= fVar1)" (( "(") (binary_expression "DAT_0029f134 <= fVar1" (identifier "DAT_0029f134") (<= "<=") (identifier "fVar1")) () ")")) (compound_statement "{\n              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));\n            }" ({ "{") (expression_statement "local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));" (assignment_expression "local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134))" (identifier "local_5c") (= "=") (call_expression "CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134))" (identifier "CONCAT44") (argument_list "((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134))" (( "(") (binary_expression "(int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +\n                                  -0x80000000" (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")) () ")"))) (+ "+") (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              local_5c = (longlong)ROUND(fVar1);\n            }" (else "else") (compound_statement "{\n              local_5c = (longlong)ROUND(fVar1);\n            }" ({ "{") (expression_statement "local_5c = (longlong)ROUND(fVar1);" (assignment_expression "local_5c = (longlong)ROUND(fVar1)" (identifier "local_5c") (= "=") (cast_expression "(longlong)ROUND(fVar1)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(fVar1)" (identifier "ROUND") (argument_list "(fVar1)" (( "(") (identifier "fVar1") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (} "}"))) (expression_statement "uVar18 = uVar16;" (assignment_expression "uVar18 = uVar16" (identifier "uVar18") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (uVar9 == 0) {\n        param_2[0x14] = 8;\n      }" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_2[0x14] = 8;\n      }" ({ "{") (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (while_statement "while (0 < (int)uVar18) {\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }" (while "while") (parenthesized_expression "(0 < (int)uVar18)" (( "(") (binary_expression "0 < (int)uVar18" (number_literal "0") (< "<") (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18"))) () ")")) (compound_statement "{\n      uVar9 = param_2[0x14];\n      uVar8 = uVar9;\n      if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }\n      uVar18 = uVar16 - uVar8;\n      uVar16 = 0;\n      if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }\n      if (uVar9 == 8) {\n        *param_6 = 0;\n      }\n      uVar9 = uVar9 - uVar8;\n      param_2[0x14] = uVar9;\n      bVar11 = (byte)uVar16 & 0x1f;\n      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;\n      if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }\n      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));\n      if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }\n      *param_6 = *param_6 | bVar11;\n      if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }\n    }" ({ "{") (expression_statement "uVar9 = param_2[0x14];" (assignment_expression "uVar9 = param_2[0x14]" (identifier "uVar9") (= "=") (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" (identifier "uVar8") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (uVar16 <= uVar9) {\n        uVar8 = uVar16;\n      }" (if "if") (parenthesized_expression "(uVar16 <= uVar9)" (( "(") (binary_expression "uVar16 <= uVar9" (identifier "uVar16") (<= "<=") (identifier "uVar9")) () ")")) (compound_statement "{\n        uVar8 = uVar16;\n      }" ({ "{") (expression_statement "uVar8 = uVar16;" (assignment_expression "uVar8 = uVar16" (identifier "uVar8") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "uVar18 = uVar16 - uVar8;" (assignment_expression "uVar18 = uVar16 - uVar8" (identifier "uVar18") (= "=") (binary_expression "uVar16 - uVar8" (identifier "uVar16") (- "-") (identifier "uVar8"))) (; ";")) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar18) {\n        uVar16 = uVar18;\n      }" (if "if") (parenthesized_expression "(-1 < (int)uVar18)" (( "(") (binary_expression "-1 < (int)uVar18" (number_literal "-1") (< "<") (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18"))) () ")")) (compound_statement "{\n        uVar16 = uVar18;\n      }" ({ "{") (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" (identifier "uVar16") (= "=") (identifier "uVar18")) (; ";")) (} "}"))) (if_statement "if (uVar9 == 8) {\n        *param_6 = 0;\n      }" (if "if") (parenthesized_expression "(uVar9 == 8)" (( "(") (binary_expression "uVar9 == 8" (identifier "uVar9") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n        *param_6 = 0;\n      }" ({ "{") (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar9 = uVar9 - uVar8;" (assignment_expression "uVar9 = uVar9 - uVar8" (identifier "uVar9") (= "=") (binary_expression "uVar9 - uVar8" (identifier "uVar9") (- "-") (identifier "uVar8"))) (; ";")) (expression_statement "param_2[0x14] = uVar9;" (assignment_expression "param_2[0x14] = uVar9" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "bVar11 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar11 = (byte)uVar16 & 0x1f" (identifier "bVar11") (= "=") (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar16")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;" (assignment_expression "uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (identifier "uVar7") (= "=") (binary_expression "(uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11" (binary_expression "(uint)local_5c >> bVar11" (cast_expression "(uint)local_5c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_5c")) (>> ">>") (identifier "bVar11")) (| "|") (binary_expression "local_5c._4_4_ << 0x20 - bVar11" (field_expression "local_5c._4_4_" (identifier "local_5c") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar11" (number_literal "0x20") (- "-") (identifier "bVar11"))))) (; ";")) (if_statement "if ((uVar16 & 0x20) != 0) {\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }" (if "if") (parenthesized_expression "((uVar16 & 0x20) != 0)" (( "(") (binary_expression "(uVar16 & 0x20) != 0" (parenthesized_expression "(uVar16 & 0x20)" (( "(") (binary_expression "uVar16 & 0x20" (identifier "uVar16") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);\n      }" ({ "{") (expression_statement "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (identifier "uVar7") (= "=") (binary_expression "local_5c._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_5c._4_4_" (identifier "local_5c") (. ".") (field_identifier "_4_4_")) (>> ">>") (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")) () ")")))) (; ";")) (} "}"))) (expression_statement "bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));" (assignment_expression "bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (identifier "bVar11") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar8 & 0x1f)) & uVar7)" (( "(") (binary_expression "~(-1 << ((byte)uVar8 & 0x1f)) & uVar7" (unary_expression "~(-1 << ((byte)uVar8 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar8 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar8 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar8 & 0x1f)" (( "(") (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar8")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar7")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar9 & 0x1f)" (( "(") (binary_expression "(byte)uVar9 & 0x1f" (cast_expression "(byte)uVar9" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar9")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar9 & 0x20) != 0) {\n        bVar11 = 0;\n      }" (if "if") (parenthesized_expression "((uVar9 & 0x20) != 0)" (( "(") (binary_expression "(uVar9 & 0x20) != 0" (parenthesized_expression "(uVar9 & 0x20)" (( "(") (binary_expression "uVar9 & 0x20" (identifier "uVar9") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        bVar11 = 0;\n      }" ({ "{") (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_6 = *param_6 | bVar11;" (assignment_expression "*param_6 = *param_6 | bVar11" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "*param_6 | bVar11" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (| "|") (identifier "bVar11"))) (; ";")) (if_statement "if (uVar9 == 0) {\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_6 = param_6 + 1;\n        param_2[0x14] = 8;\n      }" ({ "{") (expression_statement "param_6 = param_6 + 1;" (assignment_expression "param_6 = param_6 + 1" (identifier "param_6") (= "=") (binary_expression "param_6 + 1" (identifier "param_6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_2[0x14] = 8;" (assignment_expression "param_2[0x14] = 8" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" (identifier "local_40") (= "=") (binary_expression "local_40 + 1" (identifier "local_40") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x298) * 8" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x298) * 8" (identifier "param_5") (+ "+") (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_6 = param_6 + param_2[9];" (assignment_expression "param_6 = param_6 + param_2[9]" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[9]" (identifier "param_6") (+ "+") (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]")))) (; ";")) (if_statement "if (local_40 == param_3) {\n      return;\n    }" (if "if") (parenthesized_expression "(local_40 == param_3)" (( "(") (binary_expression "local_40 == param_3" (identifier "local_40") (== "==") (identifier "param_3")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar16 = *param_2;" (assignment_expression "uVar16 = *param_2" (identifier "uVar16") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* 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 */

void __regparm2
function_1(type_1 *image,type_2 *quantum_info,type_3 number_pixels,type_4 *var_13,
                  type_5 *var_11,type_6 *exception)

{
  float var_16;
  double var_14;
  type_7 lVar3;
  double var_22;
  type_8 var_6;
  type_9 var_35;
  type_9 var_29;
  type_9 var_26;
  type_10 var_27;
  type_5 uVar10;
  type_5 uVar11;
  type_5 uVar12;
  int var_20;
  type_10 var_28;
  type_5 uVar15;
  type_11 *pPVar16;
  type_9 var_3;
  type_5 uVar18;
  type_9 var_30;
  type_5 local_8c;
  type_5 local_84;
  type_5 local_7c;
  type_5 local_74;
  type_5 local_6c;
  int var_12;
  type_12 local_5c;
  int local_4c;
  int var_32;
  int var_37;
  type_5 local_34;
  
  var_22 = var_23;
  var_14 = _DAT_0029f148;
  if (image->colorspace != var_1) {
    var_2
              (exception,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,ImageError,
               "ColorSeparatedImageRequired","`%s\'",image->filename);
    return;
  }
  var_3 = quantum_info->depth;
  if (var_3 == 0x10) {
    if (quantum_info->format == var_4) {
      if ((int)number_pixels < 1) {
        return;
      }
      var_12 = 0;
      do {
        var_6 = var_5
                          ((float)((type_13)var_14 * (type_13)var_13[image->channel_map->offset]));
        uVar10 = (type_5)(var_6 >> 8);
        if (quantum_info->endian == var_7) {
          *var_11 = (type_5)var_6;
          var_11[1] = uVar10;
        }
        else {
          *var_11 = uVar10;
          var_11[1] = (type_5)var_6;
        }
        var_6 = var_5
                          ((float)((type_13)_DAT_0029f148 *
                                  (type_13)var_13[image->channel_map[1].offset]));
        uVar10 = (type_5)(var_6 >> 8);
        if (quantum_info->endian == var_7) {
          var_11[2] = (type_5)var_6;
          var_11[3] = uVar10;
        }
        else {
          var_11[2] = uVar10;
          var_11[3] = (type_5)var_6;
        }
        var_6 = var_5
                          ((float)((type_13)_DAT_0029f148 *
                                  (type_13)var_13[image->channel_map[2].offset]));
        uVar10 = (type_5)(var_6 >> 8);
        if (quantum_info->endian == var_7) {
          var_11[4] = (type_5)var_6;
          var_11[5] = uVar10;
        }
        else {
          var_11[5] = (type_5)var_6;
          var_11[4] = uVar10;
        }
        if (image->channel_map[3].traits == var_8) {
          var_16 = 0.0;
        }
        else {
          var_16 = (float)((type_13)_DAT_0029f148 * (type_13)var_13[image->channel_map[3].offset]);
        }
        var_6 = var_5(var_16);
        uVar10 = (type_5)(var_6 >> 8);
        if (quantum_info->endian == var_7) {
          var_11[6] = (type_5)var_6;
          var_11[7] = uVar10;
        }
        else {
          var_11[6] = uVar10;
          var_11[7] = (type_5)var_6;
        }
        var_16 = 0.0;
        if (image->channel_map[4].traits == var_9) {
          var_16 = (var_10 - (float)var_13[image->channel_map[4].offset]) * (float)_DAT_0029f148;
        }
        var_6 = var_5(var_16);
        uVar10 = (type_5)(var_6 >> 8);
        if (quantum_info->endian == var_7) {
          var_11[8] = (type_5)var_6;
          var_11[9] = uVar10;
        }
        else {
          var_11[8] = uVar10;
          var_11[9] = (type_5)var_6;
        }
        var_11 = var_11 + quantum_info->pad + 10;
        var_12 = var_12 + 1;
        var_13 = var_13 + image->number_channels;
      } while (var_12 != (int)number_pixels);
      return;
    }
    if ((int)number_pixels < 1) {
      return;
    }
    var_12 = 0;
    do {
      var_14 = var_13[image->channel_map->offset];
      if (var_14 <= 0.0) {
        uVar10 = '\0';
        uVar11 = '\0';
        uVar12 = '\0';
        uVar15 = '\0';
        if (quantum_info->endian != var_7) goto LAB_0013caf0;
LAB_0013cf50:
        *var_11 = uVar10;
        var_11[1] = uVar12;
      }
      else {
        if ((double)var_10 <= var_14) {
          var_20 = -1;
          uVar15 = 0xff;
        }
        else {
          var_20 = (int)var_15(var_14 + (double)var_17);
          uVar15 = (type_5)((type_9)var_20 >> 8);
        }
        uVar11 = (type_5)var_20;
        uVar10 = uVar11;
        uVar12 = uVar15;
        if (quantum_info->endian == var_7) goto LAB_0013cf50;
LAB_0013caf0:
        *var_11 = uVar15;
        var_11[1] = uVar11;
      }
      var_14 = var_13[image->channel_map[1].offset];
      if (var_14 <= 0.0) {
        uVar10 = '\0';
        uVar12 = '\0';
        uVar11 = '\0';
        if (quantum_info->endian != var_7) goto LAB_0013cb64;
LAB_0013cf28:
        var_11[2] = uVar10;
        var_11[3] = uVar11;
      }
      else {
        if ((double)var_10 <= var_14) {
          var_20 = -1;
          uVar11 = 0xff;
        }
        else {
          var_20 = (int)var_15(var_14 + (double)var_17);
          uVar11 = (type_5)((type_9)var_20 >> 8);
        }
        uVar12 = (type_5)var_20;
        uVar10 = uVar12;
        if (quantum_info->endian == var_7) goto LAB_0013cf28;
LAB_0013cb64:
        var_11[3] = uVar12;
        var_11[2] = uVar11;
      }
      var_14 = var_13[image->channel_map[2].offset];
      if (var_14 <= 0.0) {
        uVar10 = '\0';
        uVar12 = '\0';
        uVar11 = '\0';
        if (quantum_info->endian != var_7) goto LAB_0013cbe0;
LAB_0013cf00:
        var_11[4] = uVar10;
        var_11[5] = uVar11;
      }
      else {
        if ((double)var_10 <= var_14) {
          var_20 = -1;
          uVar11 = 0xff;
        }
        else {
          var_20 = (int)var_15(var_14 + (double)var_17);
          uVar11 = (type_5)((type_9)var_20 >> 8);
        }
        uVar12 = (type_5)var_20;
        uVar10 = uVar12;
        if (quantum_info->endian == var_7) goto LAB_0013cf00;
LAB_0013cbe0:
        var_11[4] = uVar11;
        var_11[5] = uVar12;
      }
      if ((image->channel_map[3].traits == var_8) ||
         (var_14 = var_13[image->channel_map[3].offset], var_14 <= 0.0)) {
        uVar11 = '\0';
        uVar15 = '\0';
        uVar10 = '\0';
        uVar12 = '\0';
        if (quantum_info->endian != var_7) goto LAB_0013ca13;
LAB_0013cc16:
        uVar18 = '\0';
        var_11[6] = uVar10;
        var_11[7] = uVar12;
        pPVar16 = image->channel_map;
        var_20 = 0;
        if (pPVar16[4].traits != var_9) goto LAB_0013ca40;
LAB_0013cc36:
        uVar18 = '\0';
        var_20 = 0;
        var_16 = var_10 - (float)var_13[pPVar16[4].offset];
        if (var_16 <= 0.0) goto LAB_0013ca40;
        if (var_10 <= var_16) {
          var_20 = -1;
          uVar18 = 0xff;
          goto LAB_0013ca40;
        }
        var_20 = (int)var_15(var_16 + var_17);
        uVar18 = (type_5)((type_9)var_20 >> 8);
        if (quantum_info->endian != var_7) goto LAB_0013ca4a;
LAB_0013cca5:
        var_11[8] = (type_5)var_20;
        var_11[9] = uVar18;
      }
      else {
        if ((double)var_10 <= var_14) {
          var_20 = -1;
          uVar15 = 0xff;
        }
        else {
          var_20 = (int)var_15(var_14 + (double)var_17);
          uVar15 = (type_5)((type_9)var_20 >> 8);
        }
        uVar11 = (type_5)var_20;
        uVar10 = uVar11;
        uVar12 = uVar15;
        if (quantum_info->endian == var_7) goto LAB_0013cc16;
LAB_0013ca13:
        uVar18 = '\0';
        var_11[6] = uVar15;
        var_11[7] = uVar11;
        pPVar16 = image->channel_map;
        var_20 = 0;
        if (pPVar16[4].traits == var_9) goto LAB_0013cc36;
LAB_0013ca40:
        if (quantum_info->endian == var_7) goto LAB_0013cca5;
LAB_0013ca4a:
        var_11[9] = (type_5)var_20;
        var_11[8] = uVar18;
      }
      var_12 = var_12 + 1;
      var_11 = var_11 + quantum_info->pad + 10;
      var_13 = var_13 + image->number_channels;
      if (var_12 == (int)number_pixels) {
        return;
      }
    } while( true );
  }
  if (var_3 < 0x11) {
    if (var_3 == 8) {
      if ((int)number_pixels < 1) {
        return;
      }
      var_20 = 0;
      do {
        uVar10 = '\0';
        if (0.0 < var_13[image->channel_map->offset]) {
          var_14 = var_13[image->channel_map->offset] / (double)var_18;
          uVar10 = 0xff;
          if (var_14 < (double)var_19) {
            uVar10 = (type_5)(short)var_15(var_14 + (double)var_17);
          }
        }
        *var_11 = uVar10;
        uVar10 = '\0';
        if (0.0 < var_13[image->channel_map[1].offset]) {
          var_14 = var_13[image->channel_map[1].offset] / (double)var_18;
          uVar10 = 0xff;
          if (var_14 < (double)var_19) {
            uVar10 = (type_5)(short)var_15(var_14 + (double)var_17);
          }
        }
        var_11[1] = uVar10;
        uVar10 = '\0';
        if (0.0 < var_13[image->channel_map[2].offset]) {
          var_14 = var_13[image->channel_map[2].offset] / (double)var_18;
          uVar10 = 0xff;
          if (var_14 < (double)var_19) {
            uVar10 = (type_5)(short)var_15(var_14 + (double)var_17);
          }
        }
        var_11[2] = uVar10;
        uVar10 = '\0';
        if ((image->channel_map[3].traits != var_8) &&
           (0.0 < var_13[image->channel_map[3].offset])) {
          var_14 = var_13[image->channel_map[3].offset] / (double)var_18;
          uVar10 = 0xff;
          if (var_14 < (double)var_19) {
            uVar10 = (type_5)(short)var_15(var_14 + (double)var_17);
          }
        }
        var_11[3] = uVar10;
        uVar10 = '\0';
        if ((image->channel_map[4].traits == var_9) &&
           (0.0 < var_10 - (float)var_13[image->channel_map[4].offset])) {
          var_16 = (var_10 - (float)var_13[image->channel_map[4].offset]) / var_18;
          uVar10 = 0xff;
          if (var_16 < var_19) {
            uVar10 = (type_5)(short)var_15(var_16 + var_17);
          }
        }
        var_11[4] = uVar10;
        var_20 = var_20 + 1;
        var_13 = var_13 + image->number_channels;
        var_11 = var_11 + quantum_info->pad + 5;
      } while (var_20 != (int)number_pixels);
      return;
    }
LAB_0013d3f8:
    local_4c = 0;
    var_32 = 0;
    if (var_3 == 0) goto LAB_0013be09;
  }
  else {
    if (var_3 == 0x20) {
      if (quantum_info->format == var_4) {
        if ((int)number_pixels < 1) {
          return;
        }
        var_12 = 0;
        do {
          var_16 = (float)var_13[image->channel_map->offset] * (float)(quantum_info->state).inverse_scale
                  + (float)quantum_info->minimum;
          uVar10 = (type_5)((type_9)var_16 >> 8);
          uVar11 = (type_5)((type_9)var_16 >> 0x10);
          uVar12 = (type_5)((type_9)var_16 >> 0x18);
          if (quantum_info->endian == var_7) {
            *var_11 = var_21(var_16,0);
            var_11[1] = uVar10;
            var_11[2] = uVar11;
            var_11[3] = uVar12;
          }
          else {
            var_11[1] = uVar11;
            *var_11 = uVar12;
            var_11[2] = uVar10;
            var_11[3] = var_21(var_16,0);
          }
          var_16 = (float)var_13[image->channel_map[1].offset] *
                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;
          uVar10 = (type_5)((type_9)var_16 >> 8);
          uVar12 = (type_5)((type_9)var_16 >> 0x18);
          uVar11 = (type_5)((type_9)var_16 >> 0x10);
          if (quantum_info->endian == var_7) {
            var_11[4] = var_21(var_16,0);
            var_11[5] = uVar10;
            var_11[6] = uVar11;
            var_11[7] = uVar12;
          }
          else {
            var_11[4] = uVar12;
            var_11[6] = uVar10;
            var_11[5] = uVar11;
            var_11[7] = var_21(var_16,0);
          }
          var_16 = (float)var_13[image->channel_map[2].offset] *
                  (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;
          uVar10 = (type_5)((type_9)var_16 >> 8);
          uVar11 = (type_5)((type_9)var_16 >> 0x18);
          uVar12 = (type_5)((type_9)var_16 >> 0x10);
          if (quantum_info->endian == var_7) {
            var_11[8] = var_21(var_16,0);
            var_11[10] = uVar12;
            var_11[9] = uVar10;
            var_11[0xb] = uVar11;
          }
          else {
            var_11[10] = uVar10;
            var_11[8] = uVar11;
            var_11[9] = uVar12;
            var_11[0xb] = var_21(var_16,0);
          }
          if (image->channel_map[3].traits == var_8) {
            var_16 = 0.0;
          }
          else {
            var_16 = (float)var_13[image->channel_map[3].offset];
          }
          var_16 = var_16 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;
          uVar10 = (type_5)((type_9)var_16 >> 8);
          uVar12 = (type_5)((type_9)var_16 >> 0x18);
          uVar11 = (type_5)((type_9)var_16 >> 0x10);
          if (quantum_info->endian == var_7) {
            var_11[0xc] = var_21(var_16,0);
            var_11[0xe] = uVar11;
            var_11[0xd] = uVar10;
            var_11[0xf] = uVar12;
          }
          else {
            var_11[0xe] = uVar10;
            var_11[0xc] = uVar12;
            var_11[0xd] = uVar11;
            var_11[0xf] = var_21(var_16,0);
          }
          if (image->channel_map[4].traits == var_9) {
            var_16 = var_10 - (float)var_13[image->channel_map[4].offset];
          }
          else {
            var_16 = 0.0;
          }
          var_16 = var_16 * (float)(quantum_info->state).inverse_scale + (float)quantum_info->minimum;
          uVar10 = (type_5)((type_9)var_16 >> 8);
          uVar11 = (type_5)((type_9)var_16 >> 0x18);
          uVar12 = (type_5)((type_9)var_16 >> 0x10);
          if (quantum_info->endian == var_7) {
            var_11[0x10] = var_21(var_16,0);
            var_11[0x12] = uVar12;
            var_11[0x11] = uVar10;
            var_11[0x13] = uVar11;
          }
          else {
            var_11[0x12] = uVar10;
            var_11[0x10] = uVar11;
            var_11[0x11] = uVar12;
            var_11[0x13] = var_21(var_16,0);
          }
          var_12 = var_12 + 1;
          var_11 = var_11 + quantum_info->pad + 0x14;
          var_13 = var_13 + image->number_channels;
        } while (var_12 != (int)number_pixels);
        return;
      }
      if ((int)number_pixels < 1) {
        return;
      }
      var_12 = 0;
      do {
        if (var_13[image->channel_map->offset] <= 0.0) {
          local_34 = '\0';
          uVar11 = '\0';
          uVar10 = '\0';
          uVar12 = '\0';
        }
        else {
          var_14 = var_13[image->channel_map->offset] * (double)var_24;
          if (var_22 <= var_14) {
            local_34 = 0xff;
            uVar11 = 0xff;
            uVar10 = 0xff;
            uVar12 = 0xff;
          }
          else {
            lVar3 = (type_7)var_15(var_14 + (double)var_17);
            local_34 = (type_5)lVar3;
            uVar12 = (type_5)((type_14)lVar3 >> 0x18);
            uVar10 = (type_5)((type_14)lVar3 >> 0x10);
            uVar11 = (type_5)((type_14)lVar3 >> 8);
          }
        }
        if (quantum_info->endian == var_7) {
          var_11[1] = uVar11;
          *var_11 = local_34;
          var_11[2] = uVar10;
          var_11[3] = uVar12;
        }
        else {
          var_11[2] = uVar11;
          *var_11 = uVar12;
          var_11[3] = local_34;
          var_11[1] = uVar10;
        }
        if (var_13[image->channel_map[1].offset] <= 0.0) {
          local_34 = '\0';
          uVar11 = '\0';
          uVar10 = '\0';
          uVar12 = '\0';
        }
        else {
          var_14 = var_13[image->channel_map[1].offset] * (double)var_24;
          if (var_23 <= var_14) {
            local_34 = 0xff;
            uVar11 = 0xff;
            uVar10 = 0xff;
            uVar12 = 0xff;
          }
          else {
            lVar3 = (type_7)var_15(var_14 + (double)var_17);
            local_34 = (type_5)lVar3;
            uVar11 = (type_5)((type_14)lVar3 >> 8);
            uVar12 = (type_5)((type_14)lVar3 >> 0x18);
            uVar10 = (type_5)((type_14)lVar3 >> 0x10);
          }
        }
        if (quantum_info->endian == var_7) {
          var_11[4] = local_34;
          var_11[6] = uVar10;
          var_11[5] = uVar11;
          var_11[7] = uVar12;
        }
        else {
          var_11[4] = uVar12;
          var_11[5] = uVar10;
          var_11[6] = uVar11;
          var_11[7] = local_34;
        }
        if (var_13[image->channel_map[2].offset] <= 0.0) {
          uVar10 = '\0';
          uVar15 = '\0';
          uVar11 = '\0';
          uVar12 = '\0';
        }
        else {
          var_14 = var_13[image->channel_map[2].offset] * (double)var_24;
          if (var_23 <= var_14) {
            uVar10 = 0xff;
            uVar15 = 0xff;
            uVar11 = 0xff;
            uVar12 = 0xff;
          }
          else {
            lVar3 = (type_7)var_15(var_14 + (double)var_17);
            uVar15 = (type_5)((type_14)lVar3 >> 8);
            uVar10 = (type_5)lVar3;
            uVar12 = (type_5)((type_14)lVar3 >> 0x18);
            uVar11 = (type_5)((type_14)lVar3 >> 0x10);
          }
        }
        if (quantum_info->endian == var_7) {
          var_11[10] = uVar11;
          var_11[0xb] = uVar12;
          var_11[8] = uVar10;
          var_11[9] = uVar15;
        }
        else {
          var_11[9] = uVar11;
          var_11[10] = uVar15;
          var_11[8] = uVar12;
          var_11[0xb] = uVar10;
        }
        if ((image->channel_map[3].traits == var_8) ||
           (var_13[image->channel_map[3].offset] <= 0.0)) {
          local_34 = '\0';
          uVar11 = '\0';
          uVar10 = '\0';
          uVar12 = '\0';
        }
        else {
          var_14 = var_13[image->channel_map[3].offset] * (double)var_24;
          if (var_23 <= var_14) {
            local_34 = 0xff;
            uVar11 = 0xff;
            uVar10 = 0xff;
            uVar12 = 0xff;
          }
          else {
            lVar3 = (type_7)var_15(var_14 + (double)var_17);
            local_34 = (type_5)lVar3;
            uVar11 = (type_5)((type_14)lVar3 >> 8);
            uVar12 = (type_5)((type_14)lVar3 >> 0x18);
            uVar10 = (type_5)((type_14)lVar3 >> 0x10);
          }
        }
        if (quantum_info->endian == var_7) {
          var_11[0xc] = local_34;
          var_11[0xe] = uVar10;
          var_11[0xd] = uVar11;
          var_11[0xf] = uVar12;
        }
        else {
          var_11[0xc] = uVar12;
          var_11[0xd] = uVar10;
          var_11[0xe] = uVar11;
          var_11[0xf] = local_34;
        }
        if ((image->channel_map[4].traits != var_9) ||
           (var_10 - (float)var_13[image->channel_map[4].offset] <= 0.0)) {
          uVar10 = '\0';
          uVar15 = '\0';
          uVar12 = '\0';
          uVar11 = '\0';
        }
        else {
          var_16 = (var_10 - (float)var_13[image->channel_map[4].offset]) * var_24;
          if ((float)var_23 <= var_16) {
            uVar10 = 0xff;
            uVar15 = 0xff;
            uVar12 = 0xff;
            uVar11 = 0xff;
          }
          else {
            lVar3 = (type_7)var_15(var_16 + var_17);
            uVar15 = (type_5)((type_14)lVar3 >> 8);
            uVar10 = (type_5)lVar3;
            uVar11 = (type_5)((type_14)lVar3 >> 0x18);
            uVar12 = (type_5)((type_14)lVar3 >> 0x10);
          }
        }
        if (quantum_info->endian == var_7) {
          var_11[0x12] = uVar12;
          var_11[0x13] = uVar11;
          var_11[0x10] = uVar10;
          var_11[0x11] = uVar15;
        }
        else {
          var_11[0x11] = uVar12;
          var_11[0x12] = uVar15;
          var_11[0x10] = uVar11;
          var_11[0x13] = uVar10;
        }
        var_12 = var_12 + 1;
        var_11 = var_11 + quantum_info->pad + 0x14;
        var_13 = var_13 + image->number_channels;
      } while (var_12 != (int)number_pixels);
      return;
    }
    if (var_3 != 0x40) goto LAB_0013d3f8;
    if (quantum_info->format == var_4) {
      if ((int)number_pixels < 1) {
        return;
      }
      var_12 = 0;
      do {
        var_14 = var_13[image->channel_map->offset] * (quantum_info->state).inverse_scale +
                quantum_info->minimum;
        uVar10 = (type_5)((type_14)var_14 >> 0x28);
        uVar12 = (type_5)((type_14)var_14 >> 0x20);
        local_74 = (type_5)((type_14)var_14 >> 0x18);
        local_84 = (type_5)((type_14)var_14 >> 0x38);
        local_6c = (type_5)((type_14)var_14 >> 0x10);
        local_7c = (type_5)((type_14)var_14 >> 0x30);
        local_8c = (type_5)((type_14)var_14 >> 8);
        if (quantum_info->endian == var_7) {
          *var_11 = var_25(var_14,0);
          var_11[4] = uVar12;
          var_11[5] = uVar10;
          var_11[1] = local_8c;
          var_11[2] = local_6c;
          var_11[3] = local_74;
          var_11[6] = local_7c;
          var_11[7] = local_84;
        }
        else {
          var_11[2] = uVar10;
          var_11[3] = uVar12;
          var_11[7] = var_25(var_14,0);
          var_11[4] = local_74;
          *var_11 = local_84;
          var_11[5] = local_6c;
          var_11[1] = local_7c;
          var_11[6] = local_8c;
        }
        var_14 = var_13[image->channel_map[1].offset] * (quantum_info->state).inverse_scale +
                quantum_info->minimum;
        uVar10 = (type_5)((type_14)var_14 >> 0x28);
        uVar12 = (type_5)((type_14)var_14 >> 0x20);
        local_74 = (type_5)((type_14)var_14 >> 0x18);
        local_84 = (type_5)((type_14)var_14 >> 0x38);
        local_6c = (type_5)((type_14)var_14 >> 0x10);
        local_7c = (type_5)((type_14)var_14 >> 0x30);
        local_8c = (type_5)((type_14)var_14 >> 8);
        if (quantum_info->endian == var_7) {
          var_11[8] = var_25(var_14,0);
          var_11[0xc] = uVar12;
          var_11[0xd] = uVar10;
          var_11[9] = local_8c;
          var_11[0xe] = local_7c;
          var_11[0xf] = local_84;
          var_11[10] = local_6c;
          var_11[0xb] = local_74;
        }
        else {
          var_11[0xb] = uVar12;
          var_11[10] = uVar10;
          var_11[0xf] = var_25(var_14,0);
          var_11[0xc] = local_74;
          var_11[8] = local_84;
          var_11[0xd] = local_6c;
          var_11[9] = local_7c;
          var_11[0xe] = local_8c;
        }
        var_14 = var_13[image->channel_map[2].offset] * (quantum_info->state).inverse_scale +
                quantum_info->minimum;
        uVar10 = (type_5)((type_14)var_14 >> 0x20);
        uVar12 = (type_5)((type_14)var_14 >> 0x28);
        local_84 = (type_5)((type_14)var_14 >> 0x38);
        local_7c = (type_5)((type_14)var_14 >> 0x30);
        local_74 = (type_5)((type_14)var_14 >> 0x18);
        local_6c = (type_5)((type_14)var_14 >> 0x10);
        local_8c = (type_5)((type_14)var_14 >> 8);
        if (quantum_info->endian == var_7) {
          var_11[0x14] = uVar10;
          var_11[0x10] = var_25(var_14,0);
          var_11[0x11] = local_8c;
          var_11[0x12] = local_6c;
          var_11[0x13] = local_74;
          var_11[0x15] = uVar12;
          var_11[0x16] = local_7c;
          var_11[0x17] = local_84;
        }
        else {
          var_11[0x13] = uVar10;
          var_11[0x17] = var_25(var_14,0);
          var_11[0x10] = local_84;
          var_11[0x11] = local_7c;
          var_11[0x12] = uVar12;
          var_11[0x14] = local_74;
          var_11[0x15] = local_6c;
          var_11[0x16] = local_8c;
        }
        if (image->channel_map[3].traits == var_8) {
          var_14 = 0.0;
        }
        else {
          var_14 = var_13[image->channel_map[3].offset];
        }
        var_14 = var_14 * (quantum_info->state).inverse_scale + quantum_info->minimum;
        uVar10 = (type_5)((type_14)var_14 >> 0x20);
        uVar12 = (type_5)((type_14)var_14 >> 0x28);
        local_74 = (type_5)((type_14)var_14 >> 0x18);
        local_84 = (type_5)((type_14)var_14 >> 0x38);
        local_6c = (type_5)((type_14)var_14 >> 0x10);
        local_7c = (type_5)((type_14)var_14 >> 0x30);
        local_8c = (type_5)((type_14)var_14 >> 8);
        if (quantum_info->endian == var_7) {
          var_11[0x1c] = uVar10;
          var_11[0x1d] = uVar12;
          var_11[0x18] = var_25(var_14,0);
          var_11[0x19] = local_8c;
          var_11[0x1e] = local_7c;
          var_11[0x1a] = local_6c;
          var_11[0x1b] = local_74;
          var_11[0x1f] = local_84;
        }
        else {
          var_11[0x1b] = uVar10;
          var_11[0x1f] = var_25(var_14,0);
          var_11[0x1c] = local_74;
          var_11[0x18] = local_84;
          var_11[0x1d] = local_6c;
          var_11[0x19] = local_7c;
          var_11[0x1a] = uVar12;
          var_11[0x1e] = local_8c;
        }
        if (image->channel_map[4].traits == var_9) {
          var_14 = (double)var_10 - var_13[image->channel_map[4].offset];
        }
        else {
          var_14 = 0.0;
        }
        var_14 = var_14 * (quantum_info->state).inverse_scale + quantum_info->minimum;
        uVar10 = (type_5)((type_14)var_14 >> 0x20);
        uVar12 = (type_5)((type_14)var_14 >> 0x28);
        local_84 = (type_5)((type_14)var_14 >> 0x38);
        local_7c = (type_5)((type_14)var_14 >> 0x30);
        local_74 = (type_5)((type_14)var_14 >> 0x18);
        local_6c = (type_5)((type_14)var_14 >> 0x10);
        local_8c = (type_5)((type_14)var_14 >> 8);
        if (quantum_info->endian == var_7) {
          var_11[0x20] = var_25(var_14,0);
          var_11[0x24] = uVar10;
          var_11[0x21] = local_8c;
          var_11[0x22] = local_6c;
          var_11[0x23] = local_74;
          var_11[0x25] = uVar12;
          var_11[0x26] = local_7c;
          var_11[0x27] = local_84;
        }
        else {
          var_11[0x23] = uVar10;
          var_11[0x27] = var_25(var_14,0);
          var_11[0x20] = local_84;
          var_11[0x21] = local_7c;
          var_11[0x22] = uVar12;
          var_11[0x24] = local_74;
          var_11[0x25] = local_6c;
          var_11[0x26] = local_8c;
        }
        var_12 = var_12 + 1;
        var_11 = var_11 + quantum_info->pad + 0x28;
        var_13 = var_13 + image->number_channels;
      } while (var_12 != (int)number_pixels);
      return;
    }
  }
  var_26 = 0;
  if (var_3 < 0x41) {
    var_26 = var_3;
  }
  var_27 = (type_10)(var_26 - 1);
  var_28 = var_27 & 0x1f;
  var_35 = 2 << (var_27 & 0x1f);
  var_29 = var_35;
  var_30 = 0 << var_28 | 2U >> 0x20 - var_28;
  if ((var_26 - 1 & 0x20) != 0) {
    var_29 = 0;
    var_30 = var_35;
  }
  local_4c = var_29 - 1;
  var_32 = (var_30 - 1) + (type_9)(var_29 != 0);
LAB_0013be09:
  if ((int)number_pixels < 1) {
    return;
  }
  var_37 = 0;
  do {
    local_5c = 0;
    pPVar16 = image->channel_map;
    if (0.0 < var_13[pPVar16->offset]) {
      var_16 = (float)var_31(var_32,local_4c);
      if (var_32 < 0) {
        var_16 = var_16 + var_33;
      }
      local_5c = -1;
      var_14 = ((double)var_16 * var_13[pPVar16->offset]) / (double)var_10;
      if (var_14 < (double)var_33) {
        var_14 = var_14 + (double)var_17;
        if ((double)var_36 <= var_14) {
          lVar3 = (type_7)var_15(var_14 - (double)var_36);
          local_5c = var_31((int)((type_14)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
        }
        else {
          local_5c = (type_7)var_15(var_14);
        }
      }
    }
    var_26 = (quantum_info->state).bits;
    if (var_26 == 0) {
      (quantum_info->state).bits = 8;
      var_26 = 8;
    }
    if ((int)var_3 < 1) {
      var_14 = var_13[pPVar16[1].offset];
      if (!var_34(var_14)) goto LAB_0013bffe;
      local_5c = 0;
    }
    else {
      do {
        while( true ) {
          var_30 = var_26;
          if (var_3 <= var_26) {
            var_30 = var_3;
          }
          var_29 = var_3 - var_30;
          var_3 = 0;
          if (-1 < (int)var_29) {
            var_3 = var_29;
          }
          if (var_26 == 8) {
            *var_11 = '\0';
          }
          var_26 = var_26 - var_30;
          var_28 = (type_10)var_3 & 0x1f;
          var_35 = (type_9)local_5c >> var_28 | local_5c._4_4_ << 0x20 - var_28;
          if ((var_3 & 0x20) != 0) {
            var_35 = local_5c._4_4_ >> ((type_10)var_3 & 0x1f);
          }
          (quantum_info->state).bits = var_26;
          var_28 = (type_10)((~(-1 << ((type_10)var_30 & 0x1f)) & var_35) << ((type_10)var_26 & 0x1f));
          if ((var_26 & 0x20) != 0) {
            var_28 = 0;
          }
          *var_11 = *var_11 | var_28;
          if (var_26 != 0) break;
          var_11 = var_11 + 1;
          (quantum_info->state).bits = 8;
          var_26 = 8;
          if ((int)var_29 < 1) goto LAB_0013bfd2;
        }
        var_26 = (quantum_info->state).bits;
      } while (0 < (int)var_29);
LAB_0013bfd2:
      pPVar16 = image->channel_map;
      var_3 = quantum_info->depth;
      var_14 = var_13[pPVar16[1].offset];
      if (var_34(var_14)) {
        local_5c = 0;
      }
      else {
LAB_0013bffe:
        local_5c = 0;
        if (0.0 < var_14) {
          var_16 = (float)var_31(var_32,local_4c);
          if (var_32 < 0) {
            var_16 = var_16 + var_33;
          }
          local_5c = -1;
          var_14 = ((double)var_16 * var_14) / (double)var_10;
          if (var_14 < (double)var_33) {
            var_14 = var_14 + (double)var_17;
            if ((double)var_36 <= var_14) {
              lVar3 = (type_7)var_15(var_14 - (double)var_36);
              local_5c = var_31((int)((type_14)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
            }
            else {
              local_5c = (type_7)var_15(var_14);
            }
          }
        }
      }
      if (var_26 == 0) {
        (quantum_info->state).bits = 8;
        var_26 = 8;
      }
    }
    if ((int)var_3 < 1) {
      var_14 = var_13[pPVar16[2].offset];
      if (!var_34(var_14)) goto LAB_0013c1b8;
      local_5c = 0;
    }
    else {
      do {
        while( true ) {
          var_30 = var_26;
          if (var_3 <= var_26) {
            var_30 = var_3;
          }
          var_29 = var_3 - var_30;
          var_3 = 0;
          if (-1 < (int)var_29) {
            var_3 = var_29;
          }
          if (var_26 == 8) {
            *var_11 = '\0';
          }
          var_26 = var_26 - var_30;
          var_28 = (type_10)var_3 & 0x1f;
          var_35 = (type_9)local_5c >> var_28 | local_5c._4_4_ << 0x20 - var_28;
          if ((var_3 & 0x20) != 0) {
            var_35 = local_5c._4_4_ >> ((type_10)var_3 & 0x1f);
          }
          (quantum_info->state).bits = var_26;
          var_28 = (type_10)((~(-1 << ((type_10)var_30 & 0x1f)) & var_35) << ((type_10)var_26 & 0x1f));
          if ((var_26 & 0x20) != 0) {
            var_28 = 0;
          }
          *var_11 = *var_11 | var_28;
          if (var_26 != 0) break;
          var_11 = var_11 + 1;
          (quantum_info->state).bits = 8;
          var_26 = 8;
          if ((int)var_29 < 1) goto LAB_0013c18c;
        }
        var_26 = (quantum_info->state).bits;
      } while (0 < (int)var_29);
LAB_0013c18c:
      pPVar16 = image->channel_map;
      var_3 = quantum_info->depth;
      var_14 = var_13[pPVar16[2].offset];
      if (var_34(var_14)) {
        local_5c = 0;
      }
      else {
LAB_0013c1b8:
        local_5c = 0;
        if (0.0 < var_14) {
          var_16 = (float)var_31(var_32,local_4c);
          if (var_32 < 0) {
            var_16 = var_16 + var_33;
          }
          local_5c = -1;
          var_14 = ((double)var_16 * var_14) / (double)var_10;
          if (var_14 < (double)var_33) {
            var_14 = var_14 + (double)var_17;
            if ((double)var_36 <= var_14) {
              lVar3 = (type_7)var_15(var_14 - (double)var_36);
              local_5c = var_31((int)((type_14)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
            }
            else {
              local_5c = (type_7)var_15(var_14);
            }
          }
        }
      }
      if (var_26 == 0) {
        (quantum_info->state).bits = 8;
        var_26 = 8;
      }
    }
    if ((int)var_3 < 1) {
      local_5c = 0;
      if (pPVar16[3].traits != var_8) goto LAB_0013c36e;
    }
    else {
      do {
        while( true ) {
          var_30 = var_26;
          if (var_3 <= var_26) {
            var_30 = var_3;
          }
          var_29 = var_3 - var_30;
          var_3 = 0;
          if (-1 < (int)var_29) {
            var_3 = var_29;
          }
          if (var_26 == 8) {
            *var_11 = '\0';
          }
          var_26 = var_26 - var_30;
          var_28 = (type_10)var_3 & 0x1f;
          var_35 = (type_9)local_5c >> var_28 | local_5c._4_4_ << 0x20 - var_28;
          if ((var_3 & 0x20) != 0) {
            var_35 = local_5c._4_4_ >> ((type_10)var_3 & 0x1f);
          }
          (quantum_info->state).bits = var_26;
          var_28 = (type_10)((~(-1 << ((type_10)var_30 & 0x1f)) & var_35) << ((type_10)var_26 & 0x1f));
          if ((var_26 & 0x20) != 0) {
            var_28 = 0;
          }
          *var_11 = *var_11 | var_28;
          if (var_26 != 0) break;
          var_11 = var_11 + 1;
          (quantum_info->state).bits = 8;
          var_26 = 8;
          if ((int)var_29 < 1) goto LAB_0013c33c;
        }
        var_26 = (quantum_info->state).bits;
      } while (0 < (int)var_29);
LAB_0013c33c:
      local_5c = 0;
      pPVar16 = image->channel_map;
      var_3 = quantum_info->depth;
      if (pPVar16[3].traits != var_8) {
LAB_0013c36e:
        if (var_13[pPVar16[3].offset] <= 0.0) {
          local_5c = 0;
        }
        else {
          var_16 = (float)var_31(var_32,local_4c);
          if (var_32 < 0) {
            var_16 = var_16 + var_33;
          }
          local_5c = -1;
          var_14 = ((double)var_16 * var_13[pPVar16[3].offset]) / (double)var_10;
          if (var_14 < (double)var_33) {
            var_14 = var_14 + (double)var_17;
            if ((double)var_36 <= var_14) {
              lVar3 = (type_7)var_15(var_14 - (double)var_36);
              local_5c = var_31((int)((type_14)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
            }
            else {
              local_5c = (type_7)var_15(var_14);
            }
          }
        }
      }
      if (var_26 == 0) {
        (quantum_info->state).bits = 8;
        var_26 = 8;
      }
    }
    if ((int)var_3 < 1) {
      local_5c = 0;
      var_30 = var_3;
      if (pPVar16[4].traits == var_9) goto LAB_0013ccd8;
    }
    else {
      do {
        while( true ) {
          var_30 = var_26;
          if (var_3 <= var_26) {
            var_30 = var_3;
          }
          var_29 = var_3 - var_30;
          var_3 = 0;
          if (-1 < (int)var_29) {
            var_3 = var_29;
          }
          if (var_26 == 8) {
            *var_11 = '\0';
          }
          var_26 = var_26 - var_30;
          var_28 = (type_10)var_3 & 0x1f;
          var_35 = (type_9)local_5c >> var_28 | local_5c._4_4_ << 0x20 - var_28;
          if ((var_3 & 0x20) != 0) {
            var_35 = local_5c._4_4_ >> ((type_10)var_3 & 0x1f);
          }
          (quantum_info->state).bits = var_26;
          var_28 = (type_10)((~(-1 << ((type_10)var_30 & 0x1f)) & var_35) << ((type_10)var_26 & 0x1f));
          if ((var_26 & 0x20) != 0) {
            var_28 = 0;
          }
          *var_11 = *var_11 | var_28;
          if (var_26 != 0) break;
          var_11 = var_11 + 1;
          (quantum_info->state).bits = 8;
          var_26 = 8;
          if ((int)var_29 < 1) goto LAB_0013c4f4;
        }
        var_26 = (quantum_info->state).bits;
      } while (0 < (int)var_29);
LAB_0013c4f4:
      local_5c = 0;
      pPVar16 = image->channel_map;
      var_3 = quantum_info->depth;
      if (pPVar16[4].traits == var_9) {
LAB_0013ccd8:
        if (var_10 - (float)var_13[pPVar16[4].offset] <= 0.0) {
          local_5c = 0;
        }
        else {
          var_16 = (float)var_31(var_32,local_4c);
          if (var_32 < 0) {
            var_16 = var_16 + var_33;
          }
          local_5c = -1;
          var_16 = (var_16 * (var_10 - (float)var_13[pPVar16[4].offset])) / var_10;
          if (var_16 < var_33) {
            var_16 = var_16 + var_17;
            if (var_36 <= var_16) {
              local_5c = var_31((int)((type_14)(type_7)var_15(var_16 - var_36) >> 0x20) +
                                  -0x80000000,(int)(type_7)var_15(var_16 - var_36));
            }
            else {
              local_5c = (type_7)var_15(var_16);
            }
          }
        }
      }
      var_30 = var_3;
      if (var_26 == 0) {
        (quantum_info->state).bits = 8;
      }
    }
    while (0 < (int)var_30) {
      var_26 = (quantum_info->state).bits;
      var_29 = var_26;
      if (var_3 <= var_26) {
        var_29 = var_3;
      }
      var_30 = var_3 - var_29;
      var_3 = 0;
      if (-1 < (int)var_30) {
        var_3 = var_30;
      }
      if (var_26 == 8) {
        *var_11 = 0;
      }
      var_26 = var_26 - var_29;
      (quantum_info->state).bits = var_26;
      var_28 = (type_10)var_3 & 0x1f;
      var_35 = (type_9)local_5c >> var_28 | local_5c._4_4_ << 0x20 - var_28;
      if ((var_3 & 0x20) != 0) {
        var_35 = local_5c._4_4_ >> ((type_10)var_3 & 0x1f);
      }
      var_28 = (type_10)((~(-1 << ((type_10)var_29 & 0x1f)) & var_35) << ((type_10)var_26 & 0x1f));
      if ((var_26 & 0x20) != 0) {
        var_28 = 0;
      }
      *var_11 = *var_11 | var_28;
      if (var_26 == 0) {
        var_11 = var_11 + 1;
        (quantum_info->state).bits = 8;
      }
    }
    var_37 = var_37 + 1;
    var_13 = var_13 + image->number_channels;
    var_11 = var_11 + quantum_info->pad;
    if (var_37 == (int)number_pixels) {
      return;
    }
    var_3 = quantum_info->depth;
  } while( true );
}


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

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

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

{
  float fVar1;
  double dVar2;
  longlong lVar3;
  float fVar4;
  double dVar5;
  undefined2 uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  byte bVar10;
  byte bVar11;
  byte bVar12;
  int iVar13;
  byte bVar14;
  int iVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  byte local_8c;
  byte local_84;
  byte local_7c;
  byte local_74;
  byte local_6c;
  int local_64;
  undefined8 local_5c;
  int local_4c;
  int iStack_48;
  int local_40;
  byte local_34;
  
  dVar5 = DAT_002a8000;
  dVar2 = _DAT_0029f148;
  if (*(int *)(param_1 + 4) != 2) {
    ThrowMagickException
              (param_7,"MagickCore/quantum-export.c","ExportCMYKOQuantum",0x6f7,0x1d1,
               "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);
    return;
  }
  uVar16 = *param_2;
  if (uVar16 == 0x10) {
    if (param_2[2] == 1) {
      if (param_3 < 1) {
        return;
      }
      local_64 = 0;
      do {
        uVar6 = FUN_00136290((float)((longdouble)dVar2 *
                                    (longdouble)
                                    *(double *)
                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)));
        bVar11 = (byte)((ushort)uVar6 >> 8);
        if (param_2[0x10] == 1) {
          *param_6 = (byte)uVar6;
          param_6[1] = bVar11;
        }
        else {
          *param_6 = bVar11;
          param_6[1] = (byte)uVar6;
        }
        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *
                                    (longdouble)
                                    *(double *)
                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));
        bVar11 = (byte)((ushort)uVar6 >> 8);
        if (param_2[0x10] == 1) {
          param_6[2] = (byte)uVar6;
          param_6[3] = bVar11;
        }
        else {
          param_6[2] = bVar11;
          param_6[3] = (byte)uVar6;
        }
        uVar6 = FUN_00136290((float)((longdouble)_DAT_0029f148 *
                                    (longdouble)
                                    *(double *)
                                     (param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));
        bVar11 = (byte)((ushort)uVar6 >> 8);
        if (param_2[0x10] == 1) {
          param_6[4] = (byte)uVar6;
          param_6[5] = bVar11;
        }
        else {
          param_6[5] = (byte)uVar6;
          param_6[4] = bVar11;
        }
        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {
          fVar1 = 0.0;
        }
        else {
          fVar1 = (float)((longdouble)_DAT_0029f148 *
                         (longdouble)
                         *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));
        }
        uVar6 = FUN_00136290(fVar1);
        bVar11 = (byte)((ushort)uVar6 >> 8);
        if (param_2[0x10] == 1) {
          param_6[6] = (byte)uVar6;
          param_6[7] = bVar11;
        }
        else {
          param_6[6] = bVar11;
          param_6[7] = (byte)uVar6;
        }
        fVar1 = 0.0;
        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {
          fVar1 = (DAT_0029f710 -
                  (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *
                  (float)_DAT_0029f148;
        }
        uVar6 = FUN_00136290(fVar1);
        bVar11 = (byte)((ushort)uVar6 >> 8);
        if (param_2[0x10] == 1) {
          param_6[8] = (byte)uVar6;
          param_6[9] = bVar11;
        }
        else {
          param_6[8] = bVar11;
          param_6[9] = (byte)uVar6;
        }
        param_6 = param_6 + param_2[9] + 10;
        local_64 = local_64 + 1;
        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;
      } while (local_64 != param_3);
      return;
    }
    if (param_3 < 1) {
      return;
    }
    local_64 = 0;
    do {
      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);
      if (dVar2 <= 0.0) {
        bVar11 = 0;
        bVar12 = 0;
        bVar10 = 0;
        bVar14 = 0;
        if (param_2[0x10] != 1) goto LAB_0013caf0;
LAB_0013cf50:
        *param_6 = bVar11;
        param_6[1] = bVar10;
      }
      else {
        if ((double)DAT_0029f710 <= dVar2) {
          iVar13 = -1;
          bVar14 = 0xff;
        }
        else {
          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);
          bVar14 = (byte)((uint)iVar13 >> 8);
        }
        bVar12 = (byte)iVar13;
        bVar11 = bVar12;
        bVar10 = bVar14;
        if (param_2[0x10] == 1) goto LAB_0013cf50;
LAB_0013caf0:
        *param_6 = bVar14;
        param_6[1] = bVar12;
      }
      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);
      if (dVar2 <= 0.0) {
        bVar11 = 0;
        bVar10 = 0;
        bVar12 = 0;
        if (param_2[0x10] != 1) goto LAB_0013cb64;
LAB_0013cf28:
        param_6[2] = bVar11;
        param_6[3] = bVar12;
      }
      else {
        if ((double)DAT_0029f710 <= dVar2) {
          iVar13 = -1;
          bVar12 = 0xff;
        }
        else {
          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);
          bVar12 = (byte)((uint)iVar13 >> 8);
        }
        bVar10 = (byte)iVar13;
        bVar11 = bVar10;
        if (param_2[0x10] == 1) goto LAB_0013cf28;
LAB_0013cb64:
        param_6[3] = bVar10;
        param_6[2] = bVar12;
      }
      dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);
      if (dVar2 <= 0.0) {
        bVar11 = 0;
        bVar10 = 0;
        bVar12 = 0;
        if (param_2[0x10] != 1) goto LAB_0013cbe0;
LAB_0013cf00:
        param_6[4] = bVar11;
        param_6[5] = bVar12;
      }
      else {
        if ((double)DAT_0029f710 <= dVar2) {
          iVar13 = -1;
          bVar12 = 0xff;
        }
        else {
          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);
          bVar12 = (byte)((uint)iVar13 >> 8);
        }
        bVar10 = (byte)iVar13;
        bVar11 = bVar10;
        if (param_2[0x10] == 1) goto LAB_0013cf00;
LAB_0013cbe0:
        param_6[4] = bVar12;
        param_6[5] = bVar10;
      }
      if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||
         (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),
         dVar2 <= 0.0)) {
        bVar12 = 0;
        bVar14 = 0;
        bVar11 = 0;
        bVar10 = 0;
        if (param_2[0x10] != 1) goto LAB_0013ca13;
LAB_0013cc16:
        bVar17 = 0;
        param_6[6] = bVar11;
        param_6[7] = bVar10;
        iVar15 = *(int *)(param_1 + 0x2a8);
        iVar13 = 0;
        if (*(int *)(iVar15 + 0x34) != 4) goto LAB_0013ca40;
LAB_0013cc36:
        bVar17 = 0;
        iVar13 = 0;
        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar15 + 0x38) * 8);
        if (fVar1 <= 0.0) goto LAB_0013ca40;
        if (DAT_0029f710 <= fVar1) {
          iVar13 = -1;
          bVar17 = 0xff;
          goto LAB_0013ca40;
        }
        iVar13 = (int)ROUND(fVar1 + DAT_0029f124);
        bVar17 = (byte)((uint)iVar13 >> 8);
        if (param_2[0x10] != 1) goto LAB_0013ca4a;
LAB_0013cca5:
        param_6[8] = (byte)iVar13;
        param_6[9] = bVar17;
      }
      else {
        if ((double)DAT_0029f710 <= dVar2) {
          iVar13 = -1;
          bVar14 = 0xff;
        }
        else {
          iVar13 = (int)ROUND(dVar2 + (double)DAT_0029f124);
          bVar14 = (byte)((uint)iVar13 >> 8);
        }
        bVar12 = (byte)iVar13;
        bVar11 = bVar12;
        bVar10 = bVar14;
        if (param_2[0x10] == 1) goto LAB_0013cc16;
LAB_0013ca13:
        bVar17 = 0;
        param_6[6] = bVar14;
        param_6[7] = bVar12;
        iVar15 = *(int *)(param_1 + 0x2a8);
        iVar13 = 0;
        if (*(int *)(iVar15 + 0x34) == 4) goto LAB_0013cc36;
LAB_0013ca40:
        if (param_2[0x10] == 1) goto LAB_0013cca5;
LAB_0013ca4a:
        param_6[9] = (byte)iVar13;
        param_6[8] = bVar17;
      }
      local_64 = local_64 + 1;
      param_6 = param_6 + param_2[9] + 10;
      param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;
      if (local_64 == param_3) {
        return;
      }
    } while( true );
  }
  if (uVar16 < 0x11) {
    if (uVar16 == 8) {
      if (param_3 < 1) {
        return;
      }
      iVar13 = 0;
      do {
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);
        bVar11 = 0;
        if (0.0 < dVar2) {
          dVar2 = dVar2 / (double)DAT_002a7ff0;
          bVar11 = 0xff;
          if (dVar2 < (double)DAT_002a7ff4) {
            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);
          }
        }
        *param_6 = bVar11;
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);
        bVar11 = 0;
        if (0.0 < dVar2) {
          dVar2 = dVar2 / (double)DAT_002a7ff0;
          bVar11 = 0xff;
          if (dVar2 < (double)DAT_002a7ff4) {
            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);
          }
        }
        param_6[1] = bVar11;
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);
        bVar11 = 0;
        if (0.0 < dVar2) {
          dVar2 = dVar2 / (double)DAT_002a7ff0;
          bVar11 = 0xff;
          if (dVar2 < (double)DAT_002a7ff4) {
            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);
          }
        }
        param_6[2] = bVar11;
        bVar11 = 0;
        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&
           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),
           0.0 < dVar2)) {
          dVar2 = dVar2 / (double)DAT_002a7ff0;
          bVar11 = 0xff;
          if (dVar2 < (double)DAT_002a7ff4) {
            bVar11 = (byte)(short)ROUND(dVar2 + (double)DAT_0029f124);
          }
        }
        param_6[3] = bVar11;
        bVar11 = 0;
        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&
           (fVar1 = DAT_0029f710 -
                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),
           0.0 < fVar1)) {
          fVar1 = fVar1 / DAT_002a7ff0;
          bVar11 = 0xff;
          if (fVar1 < DAT_002a7ff4) {
            bVar11 = (byte)(short)ROUND(fVar1 + DAT_0029f124);
          }
        }
        param_6[4] = bVar11;
        iVar13 = iVar13 + 1;
        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;
        param_6 = param_6 + param_2[9] + 5;
      } while (iVar13 != param_3);
      return;
    }
LAB_0013d3f8:
    local_4c = 0;
    iStack_48 = 0;
    if (uVar16 == 0) goto LAB_0013be09;
  }
  else {
    if (uVar16 == 0x20) {
      if (param_2[2] == 1) {
        if (param_3 < 1) {
          return;
        }
        local_64 = 0;
        do {
          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *
                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);
          bVar11 = (byte)((uint)fVar1 >> 8);
          bVar12 = (byte)((uint)fVar1 >> 0x10);
          bVar10 = (byte)((uint)fVar1 >> 0x18);
          if (param_2[0x10] == 1) {
            *param_6 = SUB41(fVar1,0);
            param_6[1] = bVar11;
            param_6[2] = bVar12;
            param_6[3] = bVar10;
          }
          else {
            param_6[1] = bVar12;
            *param_6 = bVar10;
            param_6[2] = bVar11;
            param_6[3] = SUB41(fVar1,0);
          }
          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *
                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);
          bVar11 = (byte)((uint)fVar1 >> 8);
          bVar10 = (byte)((uint)fVar1 >> 0x18);
          bVar12 = (byte)((uint)fVar1 >> 0x10);
          if (param_2[0x10] == 1) {
            param_6[4] = SUB41(fVar1,0);
            param_6[5] = bVar11;
            param_6[6] = bVar12;
            param_6[7] = bVar10;
          }
          else {
            param_6[4] = bVar10;
            param_6[6] = bVar11;
            param_6[5] = bVar12;
            param_6[7] = SUB41(fVar1,0);
          }
          fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *
                  (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);
          bVar11 = (byte)((uint)fVar1 >> 8);
          bVar10 = (byte)((uint)fVar1 >> 0x18);
          bVar12 = (byte)((uint)fVar1 >> 0x10);
          if (param_2[0x10] == 1) {
            param_6[8] = SUB41(fVar1,0);
            param_6[10] = bVar12;
            param_6[9] = bVar11;
            param_6[0xb] = bVar10;
          }
          else {
            param_6[10] = bVar11;
            param_6[8] = bVar10;
            param_6[9] = bVar12;
            param_6[0xb] = SUB41(fVar1,0);
          }
          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {
            fVar1 = 0.0;
          }
          else {
            fVar1 = (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);
          }
          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);
          bVar11 = (byte)((uint)fVar1 >> 8);
          bVar12 = (byte)((uint)fVar1 >> 0x18);
          bVar10 = (byte)((uint)fVar1 >> 0x10);
          if (param_2[0x10] == 1) {
            param_6[0xc] = SUB41(fVar1,0);
            param_6[0xe] = bVar10;
            param_6[0xd] = bVar11;
            param_6[0xf] = bVar12;
          }
          else {
            param_6[0xe] = bVar11;
            param_6[0xc] = bVar12;
            param_6[0xd] = bVar10;
            param_6[0xf] = SUB41(fVar1,0);
          }
          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {
            fVar1 = DAT_0029f710 -
                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
          }
          else {
            fVar1 = 0.0;
          }
          fVar1 = fVar1 * (float)*(double *)(param_2 + 0x11) + (float)*(double *)(param_2 + 3);
          bVar11 = (byte)((uint)fVar1 >> 8);
          bVar12 = (byte)((uint)fVar1 >> 0x18);
          bVar10 = (byte)((uint)fVar1 >> 0x10);
          if (param_2[0x10] == 1) {
            param_6[0x10] = SUB41(fVar1,0);
            param_6[0x12] = bVar10;
            param_6[0x11] = bVar11;
            param_6[0x13] = bVar12;
          }
          else {
            param_6[0x12] = bVar11;
            param_6[0x10] = bVar12;
            param_6[0x11] = bVar10;
            param_6[0x13] = SUB41(fVar1,0);
          }
          local_64 = local_64 + 1;
          param_6 = param_6 + param_2[9] + 0x14;
          param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;
        } while (local_64 != param_3);
        return;
      }
      if (param_3 < 1) {
        return;
      }
      local_64 = 0;
      do {
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);
        if (dVar2 <= 0.0) {
          local_34 = 0;
          bVar12 = 0;
          bVar11 = 0;
          bVar10 = 0;
        }
        else {
          dVar2 = dVar2 * (double)DAT_002a7fec;
          if (dVar5 <= dVar2) {
            local_34 = 0xff;
            bVar12 = 0xff;
            bVar11 = 0xff;
            bVar10 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);
            local_34 = (byte)lVar3;
            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);
            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);
            bVar12 = (byte)((ulonglong)lVar3 >> 8);
          }
        }
        if (param_2[0x10] == 1) {
          param_6[1] = bVar12;
          *param_6 = local_34;
          param_6[2] = bVar11;
          param_6[3] = bVar10;
        }
        else {
          param_6[2] = bVar12;
          *param_6 = bVar10;
          param_6[3] = local_34;
          param_6[1] = bVar11;
        }
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);
        if (dVar2 <= 0.0) {
          local_34 = 0;
          bVar12 = 0;
          bVar11 = 0;
          bVar10 = 0;
        }
        else {
          dVar2 = dVar2 * (double)DAT_002a7fec;
          if (DAT_002a8000 <= dVar2) {
            local_34 = 0xff;
            bVar12 = 0xff;
            bVar11 = 0xff;
            bVar10 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);
            local_34 = (byte)lVar3;
            bVar12 = (byte)((ulonglong)lVar3 >> 8);
            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);
            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);
          }
        }
        if (param_2[0x10] == 1) {
          param_6[4] = local_34;
          param_6[6] = bVar11;
          param_6[5] = bVar12;
          param_6[7] = bVar10;
        }
        else {
          param_6[4] = bVar10;
          param_6[5] = bVar11;
          param_6[6] = bVar12;
          param_6[7] = local_34;
        }
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);
        if (dVar2 <= 0.0) {
          bVar11 = 0;
          bVar14 = 0;
          bVar12 = 0;
          bVar10 = 0;
        }
        else {
          dVar2 = dVar2 * (double)DAT_002a7fec;
          if (DAT_002a8000 <= dVar2) {
            bVar11 = 0xff;
            bVar14 = 0xff;
            bVar12 = 0xff;
            bVar10 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);
            bVar14 = (byte)((ulonglong)lVar3 >> 8);
            bVar11 = (byte)lVar3;
            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);
            bVar12 = (byte)((ulonglong)lVar3 >> 0x10);
          }
        }
        if (param_2[0x10] == 1) {
          param_6[10] = bVar12;
          param_6[0xb] = bVar10;
          param_6[8] = bVar11;
          param_6[9] = bVar14;
        }
        else {
          param_6[9] = bVar12;
          param_6[10] = bVar14;
          param_6[8] = bVar10;
          param_6[0xb] = bVar11;
        }
        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||
           (dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),
           dVar2 <= 0.0)) {
          local_34 = 0;
          bVar12 = 0;
          bVar11 = 0;
          bVar10 = 0;
        }
        else {
          dVar2 = dVar2 * (double)DAT_002a7fec;
          if (DAT_002a8000 <= dVar2) {
            local_34 = 0xff;
            bVar12 = 0xff;
            bVar11 = 0xff;
            bVar10 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(dVar2 + (double)DAT_0029f124);
            local_34 = (byte)lVar3;
            bVar12 = (byte)((ulonglong)lVar3 >> 8);
            bVar10 = (byte)((ulonglong)lVar3 >> 0x18);
            bVar11 = (byte)((ulonglong)lVar3 >> 0x10);
          }
        }
        if (param_2[0x10] == 1) {
          param_6[0xc] = local_34;
          param_6[0xe] = bVar11;
          param_6[0xd] = bVar12;
          param_6[0xf] = bVar10;
        }
        else {
          param_6[0xc] = bVar10;
          param_6[0xd] = bVar11;
          param_6[0xe] = bVar12;
          param_6[0xf] = local_34;
        }
        if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||
           (fVar1 = DAT_0029f710 -
                    (float)*(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),
           fVar1 <= 0.0)) {
          bVar11 = 0;
          bVar14 = 0;
          bVar10 = 0;
          bVar12 = 0;
        }
        else {
          fVar1 = fVar1 * DAT_002a7fec;
          if ((float)DAT_002a8000 <= fVar1) {
            bVar11 = 0xff;
            bVar14 = 0xff;
            bVar10 = 0xff;
            bVar12 = 0xff;
          }
          else {
            lVar3 = (longlong)ROUND(fVar1 + DAT_0029f124);
            bVar14 = (byte)((ulonglong)lVar3 >> 8);
            bVar11 = (byte)lVar3;
            bVar12 = (byte)((ulonglong)lVar3 >> 0x18);
            bVar10 = (byte)((ulonglong)lVar3 >> 0x10);
          }
        }
        if (param_2[0x10] == 1) {
          param_6[0x12] = bVar10;
          param_6[0x13] = bVar12;
          param_6[0x10] = bVar11;
          param_6[0x11] = bVar14;
        }
        else {
          param_6[0x11] = bVar10;
          param_6[0x12] = bVar14;
          param_6[0x10] = bVar12;
          param_6[0x13] = bVar11;
        }
        local_64 = local_64 + 1;
        param_6 = param_6 + param_2[9] + 0x14;
        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;
      } while (local_64 != param_3);
      return;
    }
    if (uVar16 != 0x40) goto LAB_0013d3f8;
    if (param_2[2] == 1) {
      if (param_3 < 1) {
        return;
      }
      local_64 = 0;
      do {
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *
                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);
        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);
        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);
        local_74 = (byte)((ulonglong)dVar2 >> 0x18);
        local_84 = (byte)((ulonglong)dVar2 >> 0x38);
        local_6c = (byte)((ulonglong)dVar2 >> 0x10);
        local_7c = (byte)((ulonglong)dVar2 >> 0x30);
        local_8c = (byte)((ulonglong)dVar2 >> 8);
        if (param_2[0x10] == 1) {
          *param_6 = SUB81(dVar2,0);
          param_6[4] = bVar10;
          param_6[5] = bVar11;
          param_6[1] = local_8c;
          param_6[2] = local_6c;
          param_6[3] = local_74;
          param_6[6] = local_7c;
          param_6[7] = local_84;
        }
        else {
          param_6[2] = bVar11;
          param_6[3] = bVar10;
          param_6[7] = SUB81(dVar2,0);
          param_6[4] = local_74;
          *param_6 = local_84;
          param_6[5] = local_6c;
          param_6[1] = local_7c;
          param_6[6] = local_8c;
        }
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) *
                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);
        bVar11 = (byte)((ulonglong)dVar2 >> 0x28);
        bVar10 = (byte)((ulonglong)dVar2 >> 0x20);
        local_74 = (byte)((ulonglong)dVar2 >> 0x18);
        local_84 = (byte)((ulonglong)dVar2 >> 0x38);
        local_6c = (byte)((ulonglong)dVar2 >> 0x10);
        local_7c = (byte)((ulonglong)dVar2 >> 0x30);
        local_8c = (byte)((ulonglong)dVar2 >> 8);
        if (param_2[0x10] == 1) {
          param_6[8] = SUB81(dVar2,0);
          param_6[0xc] = bVar10;
          param_6[0xd] = bVar11;
          param_6[9] = local_8c;
          param_6[0xe] = local_7c;
          param_6[0xf] = local_84;
          param_6[10] = local_6c;
          param_6[0xb] = local_74;
        }
        else {
          param_6[0xb] = bVar10;
          param_6[10] = bVar11;
          param_6[0xf] = SUB81(dVar2,0);
          param_6[0xc] = local_74;
          param_6[8] = local_84;
          param_6[0xd] = local_6c;
          param_6[9] = local_7c;
          param_6[0xe] = local_8c;
        }
        dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) *
                *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);
        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);
        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);
        local_84 = (byte)((ulonglong)dVar2 >> 0x38);
        local_7c = (byte)((ulonglong)dVar2 >> 0x30);
        local_74 = (byte)((ulonglong)dVar2 >> 0x18);
        local_6c = (byte)((ulonglong)dVar2 >> 0x10);
        local_8c = (byte)((ulonglong)dVar2 >> 8);
        if (param_2[0x10] == 1) {
          param_6[0x14] = bVar11;
          param_6[0x10] = SUB81(dVar2,0);
          param_6[0x11] = local_8c;
          param_6[0x12] = local_6c;
          param_6[0x13] = local_74;
          param_6[0x15] = bVar10;
          param_6[0x16] = local_7c;
          param_6[0x17] = local_84;
        }
        else {
          param_6[0x13] = bVar11;
          param_6[0x17] = SUB81(dVar2,0);
          param_6[0x10] = local_84;
          param_6[0x11] = local_7c;
          param_6[0x12] = bVar10;
          param_6[0x14] = local_74;
          param_6[0x15] = local_6c;
          param_6[0x16] = local_8c;
        }
        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {
          dVar2 = 0.0;
        }
        else {
          dVar2 = *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);
        }
        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);
        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);
        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);
        local_74 = (byte)((ulonglong)dVar2 >> 0x18);
        local_84 = (byte)((ulonglong)dVar2 >> 0x38);
        local_6c = (byte)((ulonglong)dVar2 >> 0x10);
        local_7c = (byte)((ulonglong)dVar2 >> 0x30);
        local_8c = (byte)((ulonglong)dVar2 >> 8);
        if (param_2[0x10] == 1) {
          param_6[0x1c] = bVar11;
          param_6[0x1d] = bVar10;
          param_6[0x18] = SUB81(dVar2,0);
          param_6[0x19] = local_8c;
          param_6[0x1e] = local_7c;
          param_6[0x1a] = local_6c;
          param_6[0x1b] = local_74;
          param_6[0x1f] = local_84;
        }
        else {
          param_6[0x1b] = bVar11;
          param_6[0x1f] = SUB81(dVar2,0);
          param_6[0x1c] = local_74;
          param_6[0x18] = local_84;
          param_6[0x1d] = local_6c;
          param_6[0x19] = local_7c;
          param_6[0x1a] = bVar10;
          param_6[0x1e] = local_8c;
        }
        if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {
          dVar2 = (double)DAT_0029f710 -
                  *(double *)(param_5 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
        }
        else {
          dVar2 = 0.0;
        }
        dVar2 = dVar2 * *(double *)(param_2 + 0x11) + *(double *)(param_2 + 3);
        bVar11 = (byte)((ulonglong)dVar2 >> 0x20);
        bVar10 = (byte)((ulonglong)dVar2 >> 0x28);
        local_84 = (byte)((ulonglong)dVar2 >> 0x38);
        local_7c = (byte)((ulonglong)dVar2 >> 0x30);
        local_74 = (byte)((ulonglong)dVar2 >> 0x18);
        local_6c = (byte)((ulonglong)dVar2 >> 0x10);
        local_8c = (byte)((ulonglong)dVar2 >> 8);
        if (param_2[0x10] == 1) {
          param_6[0x20] = SUB81(dVar2,0);
          param_6[0x24] = bVar11;
          param_6[0x21] = local_8c;
          param_6[0x22] = local_6c;
          param_6[0x23] = local_74;
          param_6[0x25] = bVar10;
          param_6[0x26] = local_7c;
          param_6[0x27] = local_84;
        }
        else {
          param_6[0x23] = bVar11;
          param_6[0x27] = SUB81(dVar2,0);
          param_6[0x20] = local_84;
          param_6[0x21] = local_7c;
          param_6[0x22] = bVar10;
          param_6[0x24] = local_74;
          param_6[0x25] = local_6c;
          param_6[0x26] = local_8c;
        }
        local_64 = local_64 + 1;
        param_6 = param_6 + param_2[9] + 0x28;
        param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;
      } while (local_64 != param_3);
      return;
    }
  }
  uVar9 = 0;
  if (uVar16 < 0x41) {
    uVar9 = uVar16;
  }
  bVar10 = (byte)(uVar9 - 1);
  bVar11 = bVar10 & 0x1f;
  uVar7 = 2 << (bVar10 & 0x1f);
  uVar8 = uVar7;
  uVar18 = 0 << bVar11 | 2U >> 0x20 - bVar11;
  if ((uVar9 - 1 & 0x20) != 0) {
    uVar8 = 0;
    uVar18 = uVar7;
  }
  local_4c = uVar8 - 1;
  iStack_48 = (uVar18 - 1) + (uint)(uVar8 != 0);
LAB_0013be09:
  if (param_3 < 1) {
    return;
  }
  local_40 = 0;
  do {
    local_5c = 0;
    iVar13 = *(int *)(param_1 + 0x2a8);
    dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 8) * 8);
    if (0.0 < dVar2) {
      fVar1 = (float)CONCAT44(iStack_48,local_4c);
      if (iStack_48 < 0) {
        fVar1 = fVar1 + DAT_0029f714;
      }
      local_5c = -1;
      dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;
      if (dVar2 < (double)DAT_0029f714) {
        dVar2 = dVar2 + (double)DAT_0029f124;
        if ((double)DAT_0029f134 <= dVar2) {
          lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);
          local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
        }
        else {
          local_5c = (longlong)ROUND(dVar2);
        }
      }
    }
    uVar9 = param_2[0x14];
    if (uVar9 == 0) {
      param_2[0x14] = 8;
      uVar9 = 8;
    }
    if ((int)uVar16 < 1) {
      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);
      if (!NAN(dVar2)) goto LAB_0013bffe;
      local_5c = 0;
    }
    else {
      do {
        while( true ) {
          uVar18 = uVar9;
          if (uVar16 <= uVar9) {
            uVar18 = uVar16;
          }
          uVar8 = uVar16 - uVar18;
          uVar16 = 0;
          if (-1 < (int)uVar8) {
            uVar16 = uVar8;
          }
          if (uVar9 == 8) {
            *param_6 = 0;
          }
          uVar9 = uVar9 - uVar18;
          bVar11 = (byte)uVar16 & 0x1f;
          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;
          if ((uVar16 & 0x20) != 0) {
            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);
          }
          param_2[0x14] = uVar9;
          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));
          if ((uVar9 & 0x20) != 0) {
            bVar11 = 0;
          }
          *param_6 = *param_6 | bVar11;
          if (uVar9 != 0) break;
          param_6 = param_6 + 1;
          param_2[0x14] = 8;
          uVar9 = 8;
          if ((int)uVar8 < 1) goto LAB_0013bfd2;
        }
        uVar9 = param_2[0x14];
      } while (0 < (int)uVar8);
LAB_0013bfd2:
      iVar13 = *(int *)(param_1 + 0x2a8);
      uVar16 = *param_2;
      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x14) * 8);
      if (NAN(dVar2)) {
        local_5c = 0;
      }
      else {
LAB_0013bffe:
        local_5c = 0;
        if (0.0 < dVar2) {
          fVar1 = (float)CONCAT44(iStack_48,local_4c);
          if (iStack_48 < 0) {
            fVar1 = fVar1 + DAT_0029f714;
          }
          local_5c = -1;
          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;
          if (dVar2 < (double)DAT_0029f714) {
            dVar2 = dVar2 + (double)DAT_0029f124;
            if ((double)DAT_0029f134 <= dVar2) {
              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);
              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
            }
            else {
              local_5c = (longlong)ROUND(dVar2);
            }
          }
        }
      }
      if (uVar9 == 0) {
        param_2[0x14] = 8;
        uVar9 = 8;
      }
    }
    if ((int)uVar16 < 1) {
      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);
      if (!NAN(dVar2)) goto LAB_0013c1b8;
      local_5c = 0;
    }
    else {
      do {
        while( true ) {
          uVar18 = uVar9;
          if (uVar16 <= uVar9) {
            uVar18 = uVar16;
          }
          uVar8 = uVar16 - uVar18;
          uVar16 = 0;
          if (-1 < (int)uVar8) {
            uVar16 = uVar8;
          }
          if (uVar9 == 8) {
            *param_6 = 0;
          }
          uVar9 = uVar9 - uVar18;
          bVar11 = (byte)uVar16 & 0x1f;
          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;
          if ((uVar16 & 0x20) != 0) {
            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);
          }
          param_2[0x14] = uVar9;
          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));
          if ((uVar9 & 0x20) != 0) {
            bVar11 = 0;
          }
          *param_6 = *param_6 | bVar11;
          if (uVar9 != 0) break;
          param_6 = param_6 + 1;
          param_2[0x14] = 8;
          uVar9 = 8;
          if ((int)uVar8 < 1) goto LAB_0013c18c;
        }
        uVar9 = param_2[0x14];
      } while (0 < (int)uVar8);
LAB_0013c18c:
      iVar13 = *(int *)(param_1 + 0x2a8);
      uVar16 = *param_2;
      dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x20) * 8);
      if (NAN(dVar2)) {
        local_5c = 0;
      }
      else {
LAB_0013c1b8:
        local_5c = 0;
        if (0.0 < dVar2) {
          fVar1 = (float)CONCAT44(iStack_48,local_4c);
          if (iStack_48 < 0) {
            fVar1 = fVar1 + DAT_0029f714;
          }
          local_5c = -1;
          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;
          if (dVar2 < (double)DAT_0029f714) {
            dVar2 = dVar2 + (double)DAT_0029f124;
            if ((double)DAT_0029f134 <= dVar2) {
              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);
              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
            }
            else {
              local_5c = (longlong)ROUND(dVar2);
            }
          }
        }
      }
      if (uVar9 == 0) {
        param_2[0x14] = 8;
        uVar9 = 8;
      }
    }
    if ((int)uVar16 < 1) {
      local_5c = 0;
      if (*(int *)(iVar13 + 0x28) != 0) goto LAB_0013c36e;
    }
    else {
      do {
        while( true ) {
          uVar18 = uVar9;
          if (uVar16 <= uVar9) {
            uVar18 = uVar16;
          }
          uVar8 = uVar16 - uVar18;
          uVar16 = 0;
          if (-1 < (int)uVar8) {
            uVar16 = uVar8;
          }
          if (uVar9 == 8) {
            *param_6 = 0;
          }
          uVar9 = uVar9 - uVar18;
          bVar11 = (byte)uVar16 & 0x1f;
          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;
          if ((uVar16 & 0x20) != 0) {
            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);
          }
          param_2[0x14] = uVar9;
          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));
          if ((uVar9 & 0x20) != 0) {
            bVar11 = 0;
          }
          *param_6 = *param_6 | bVar11;
          if (uVar9 != 0) break;
          param_6 = param_6 + 1;
          param_2[0x14] = 8;
          uVar9 = 8;
          if ((int)uVar8 < 1) goto LAB_0013c33c;
        }
        uVar9 = param_2[0x14];
      } while (0 < (int)uVar8);
LAB_0013c33c:
      local_5c = 0;
      iVar13 = *(int *)(param_1 + 0x2a8);
      uVar16 = *param_2;
      if (*(int *)(iVar13 + 0x28) != 0) {
LAB_0013c36e:
        dVar2 = *(double *)(param_5 + *(int *)(iVar13 + 0x2c) * 8);
        if (dVar2 <= 0.0) {
          local_5c = 0;
        }
        else {
          fVar1 = (float)CONCAT44(iStack_48,local_4c);
          if (iStack_48 < 0) {
            fVar1 = fVar1 + DAT_0029f714;
          }
          local_5c = -1;
          dVar2 = ((double)fVar1 * dVar2) / (double)DAT_0029f710;
          if (dVar2 < (double)DAT_0029f714) {
            dVar2 = dVar2 + (double)DAT_0029f124;
            if ((double)DAT_0029f134 <= dVar2) {
              lVar3 = (longlong)ROUND(dVar2 - (double)DAT_0029f134);
              local_5c = CONCAT44((int)((ulonglong)lVar3 >> 0x20) + -0x80000000,(int)lVar3);
            }
            else {
              local_5c = (longlong)ROUND(dVar2);
            }
          }
        }
      }
      if (uVar9 == 0) {
        param_2[0x14] = 8;
        uVar9 = 8;
      }
    }
    if ((int)uVar16 < 1) {
      local_5c = 0;
      uVar18 = uVar16;
      if (*(int *)(iVar13 + 0x34) == 4) goto LAB_0013ccd8;
    }
    else {
      do {
        while( true ) {
          uVar18 = uVar9;
          if (uVar16 <= uVar9) {
            uVar18 = uVar16;
          }
          uVar8 = uVar16 - uVar18;
          uVar16 = 0;
          if (-1 < (int)uVar8) {
            uVar16 = uVar8;
          }
          if (uVar9 == 8) {
            *param_6 = 0;
          }
          uVar9 = uVar9 - uVar18;
          bVar11 = (byte)uVar16 & 0x1f;
          uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;
          if ((uVar16 & 0x20) != 0) {
            uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);
          }
          param_2[0x14] = uVar9;
          bVar11 = (byte)((~(-1 << ((byte)uVar18 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));
          if ((uVar9 & 0x20) != 0) {
            bVar11 = 0;
          }
          *param_6 = *param_6 | bVar11;
          if (uVar9 != 0) break;
          param_6 = param_6 + 1;
          param_2[0x14] = 8;
          uVar9 = 8;
          if ((int)uVar8 < 1) goto LAB_0013c4f4;
        }
        uVar9 = param_2[0x14];
      } while (0 < (int)uVar8);
LAB_0013c4f4:
      local_5c = 0;
      iVar13 = *(int *)(param_1 + 0x2a8);
      uVar16 = *param_2;
      if (*(int *)(iVar13 + 0x34) == 4) {
LAB_0013ccd8:
        fVar1 = DAT_0029f710 - (float)*(double *)(param_5 + *(int *)(iVar13 + 0x38) * 8);
        if (fVar1 <= 0.0) {
          local_5c = 0;
        }
        else {
          fVar4 = (float)CONCAT44(iStack_48,local_4c);
          if (iStack_48 < 0) {
            fVar4 = fVar4 + DAT_0029f714;
          }
          local_5c = -1;
          fVar1 = (fVar4 * fVar1) / DAT_0029f710;
          if (fVar1 < DAT_0029f714) {
            fVar1 = fVar1 + DAT_0029f124;
            if (DAT_0029f134 <= fVar1) {
              local_5c = CONCAT44((int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20) +
                                  -0x80000000,(int)(longlong)ROUND(fVar1 - DAT_0029f134));
            }
            else {
              local_5c = (longlong)ROUND(fVar1);
            }
          }
        }
      }
      uVar18 = uVar16;
      if (uVar9 == 0) {
        param_2[0x14] = 8;
      }
    }
    while (0 < (int)uVar18) {
      uVar9 = param_2[0x14];
      uVar8 = uVar9;
      if (uVar16 <= uVar9) {
        uVar8 = uVar16;
      }
      uVar18 = uVar16 - uVar8;
      uVar16 = 0;
      if (-1 < (int)uVar18) {
        uVar16 = uVar18;
      }
      if (uVar9 == 8) {
        *param_6 = 0;
      }
      uVar9 = uVar9 - uVar8;
      param_2[0x14] = uVar9;
      bVar11 = (byte)uVar16 & 0x1f;
      uVar7 = (uint)local_5c >> bVar11 | local_5c._4_4_ << 0x20 - bVar11;
      if ((uVar16 & 0x20) != 0) {
        uVar7 = local_5c._4_4_ >> ((byte)uVar16 & 0x1f);
      }
      bVar11 = (byte)((~(-1 << ((byte)uVar8 & 0x1f)) & uVar7) << ((byte)uVar9 & 0x1f));
      if ((uVar9 & 0x20) != 0) {
        bVar11 = 0;
      }
      *param_6 = *param_6 | bVar11;
      if (uVar9 == 0) {
        param_6 = param_6 + 1;
        param_2[0x14] = 8;
      }
    }
    local_40 = local_40 + 1;
    param_5 = param_5 + *(int *)(param_1 + 0x298) * 8;
    param_6 = param_6 + param_2[9];
    if (local_40 == param_3) {
      return;
    }
    uVar16 = *param_2;
  } while( true );
}

