
/* 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 ExportBGROQuantum(Image *image,QuantumInfo *quantum_info,MagickSizeType number_pixels,
                      Quantum *p,uchar *q,ExceptionInfo *exception)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined1 uVar6;
  undefined1 uVar7;
  ushort uVar5;
  PixelChannelMap *pPVar8;
  int extraout_v1;
  int extraout_v1_00;
  int extraout_v1_01;
  uint uVar9;
  uint extraout_v1_02;
  uint extraout_v1_03;
  uint extraout_v1_04;
  uint uVar10;
  uint extraout_v1_05;
  uint extraout_v1_06;
  uint extraout_v1_07;
  uint extraout_v1_08;
  uint extraout_v1_09;
  undefined1 uVar14;
  byte bVar15;
  uint uVar11;
  undefined1 *puVar12;
  undefined1 *puVar13;
  undefined1 uVar16;
  uint uVar17;
  uint uVar18;
  EndianType EVar19;
  undefined1 uVar20;
  undefined1 uVar22;
  undefined1 uVar23;
  PixelTrait PVar21;
  undefined1 uVar24;
  uint uVar25;
  int iVar26;
  size_t sVar27;
  uint uVar28;
  uchar *puVar29;
  int iVar30;
  byte *pbVar31;
  int iVar32;
  double dVar33;
  float fVar39;
  double dVar34;
  double dVar35;
  double dVar36;
  double dVar37;
  float fVar40;
  double dVar38;
  undefined2 uVar41;
  float fVar42;
  ulonglong uVar43;
  undefined8 uVar44;
  double dVar45;
  double dVar46;
  double dVar47;
  double dVar48;
  double dVar49;
  double dVar50;
  undefined8 uVar51;
  int local_c0;
  uint local_b8;
  
  puVar4 = PTR_s_courses_003a88ec;
  puVar3 = PTR_s_t_to_left_003a88e4;
  puVar2 = PTR_LAB_003a88e0;
  if (exception == (ExceptionInfo *)0x0) {
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,
               PTR_s_courses_003a88ec + -0x75c0);
    return;
  }
  if (exception->signature != 0xabacadab) {
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,
               PTR_s_courses_003a88ec + -0x75c0);
    return;
  }
  uVar25 = quantum_info->depth;
  if (uVar25 == 0x10) {
    if (quantum_info->format == FloatingPointQuantumFormat) {
      if ((int)q < 1) {
        return;
      }
      puVar29 = (uchar *)0x0;
      EVar19 = LSBEndian;
      PVar21 = BlendPixelTrait;
      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1440);
      uVar43 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);
      dVar33 = dVar36;
      dVar34 = dVar36;
      dVar35 = dVar36;
      do {
        iVar26 = (int)(number_pixels >> 0x20);
        puVar12 = (undefined1 *)number_pixels;
        uVar5 = SinglePrecisionToHalf
                          ((float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *
                                  dVar36));
        uVar6 = (undefined1)(uVar5 >> 8);
        if (quantum_info->endian == EVar19) {
          *puVar12 = (char)uVar5;
          puVar12[1] = uVar6;
        }
        else {
          *puVar12 = uVar6;
          puVar12[1] = (char)uVar5;
        }
        uVar5 = SinglePrecisionToHalf
                          ((float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *
                                  dVar34));
        uVar6 = (undefined1)(uVar5 >> 8);
        if (quantum_info->endian == EVar19) {
          puVar12[2] = (char)uVar5;
          puVar12[3] = uVar6;
        }
        else {
          puVar12[2] = uVar6;
          puVar12[3] = (char)uVar5;
        }
        puVar12 = puVar12 + 4;
        uVar5 = SinglePrecisionToHalf
                          ((float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *
                                  dVar33));
        uVar6 = (undefined1)(uVar5 >> 8);
        if (quantum_info->endian == EVar19) {
          *puVar12 = (char)uVar5;
          puVar12[1] = uVar6;
        }
        else {
          *puVar12 = uVar6;
          puVar12[1] = (char)uVar5;
        }
        puVar12 = puVar12 + 2;
        if (image->channel_map[4].traits == PVar21) {
          fVar39 = (float)((double)((float)uVar43 -
                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35);
        }
        else {
          fVar39 = 0.0;
        }
        uVar5 = SinglePrecisionToHalf(fVar39);
        uVar6 = (undefined1)(uVar5 >> 8);
        if (quantum_info->endian == EVar19) {
          *puVar12 = (char)uVar5;
          puVar12[1] = uVar6;
        }
        else {
          *puVar12 = uVar6;
          puVar12[1] = (char)uVar5;
        }
        puVar29 = puVar29 + 1;
        number_pixels =
             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 2);
      } while (puVar29 != q);
      return;
    }
    if ((int)q < 1) {
      return;
    }
    puVar29 = (uchar *)0x0;
    fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
    dVar34 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
    dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
    do {
      iVar26 = (int)(number_pixels >> 0x20);
      puVar12 = (undefined1 *)number_pixels;
      fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);
      if (fVar42 <= 0.0) {
        uVar20 = 0;
        uVar6 = 0;
        uVar14 = 0;
        uVar16 = 0;
        if (quantum_info->endian != LSBEndian) goto LAB_00165b70;
LAB_00165d84:
        *puVar12 = uVar14;
        puVar12[1] = uVar16;
      }
      else {
        if (fVar42 < fVar39) {
          dVar35 = (double)fVar42 + dVar34;
          if (dVar33 <= dVar35) {
            dVar35 = dVar35 - dVar33;
          }
          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);
          uVar20 = (undefined1)(int)dVar35;
        }
        else {
          uVar20 = 0xff;
          uVar6 = 0xff;
        }
        uVar14 = uVar20;
        uVar16 = uVar6;
        if (quantum_info->endian == LSBEndian) goto LAB_00165d84;
LAB_00165b70:
        *puVar12 = uVar6;
        puVar12[1] = uVar20;
      }
      fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);
      if (fVar42 <= 0.0) {
        uVar20 = 0;
        uVar6 = 0;
        uVar14 = 0;
        uVar16 = 0;
        if (quantum_info->endian != LSBEndian) goto LAB_00165be4;
LAB_00165d64:
        puVar12[2] = uVar14;
        puVar12[3] = uVar16;
      }
      else {
        if (fVar42 < fVar39) {
          dVar35 = (double)fVar42 + dVar34;
          if (dVar33 <= dVar35) {
            dVar35 = dVar35 - dVar33;
          }
          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);
          uVar20 = (undefined1)(int)dVar35;
        }
        else {
          uVar20 = 0xff;
          uVar6 = 0xff;
        }
        uVar14 = uVar20;
        uVar16 = uVar6;
        if (quantum_info->endian == LSBEndian) goto LAB_00165d64;
LAB_00165be4:
        puVar12[2] = uVar6;
        puVar12[3] = uVar20;
      }
      fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);
      if (fVar42 <= 0.0) {
        uVar20 = 0;
        uVar6 = 0;
        uVar14 = 0;
        uVar16 = 0;
        if (quantum_info->endian != LSBEndian) goto LAB_00165c5c;
LAB_00165d44:
        puVar12[4] = uVar14;
        puVar12[5] = uVar16;
      }
      else {
        if (fVar42 < fVar39) {
          dVar35 = (double)fVar42 + dVar34;
          if (dVar33 <= dVar35) {
            dVar35 = dVar35 - dVar33;
          }
          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);
          uVar20 = (undefined1)(int)dVar35;
        }
        else {
          uVar20 = 0xff;
          uVar6 = 0xff;
        }
        uVar14 = uVar20;
        uVar16 = uVar6;
        if (quantum_info->endian == LSBEndian) goto LAB_00165d44;
LAB_00165c5c:
        puVar12[4] = uVar6;
        puVar12[5] = uVar20;
      }
      if ((image->channel_map[4].traits != BlendPixelTrait) ||
         (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0)) {
        uVar6 = 0;
        uVar14 = 0;
LAB_00165c80:
        if (quantum_info->endian != LSBEndian) goto LAB_00165c8c;
LAB_00165d24:
        puVar12[6] = uVar6;
        puVar12[7] = uVar14;
      }
      else {
        if (fVar39 <= fVar42) {
          uVar6 = 0xff;
          uVar14 = 0xff;
          goto LAB_00165c80;
        }
        dVar35 = (double)fVar42 + dVar34;
        if (dVar35 < dVar33) {
          uVar41 = (undefined2)(int)dVar35;
        }
        else {
          uVar41 = (undefined2)(int)(dVar35 - dVar33);
        }
        uVar14 = (undefined1)((ushort)uVar41 >> 8);
        uVar6 = (undefined1)uVar41;
        if (quantum_info->endian == LSBEndian) goto LAB_00165d24;
LAB_00165c8c:
        puVar12[6] = uVar14;
        puVar12[7] = uVar6;
      }
      puVar29 = puVar29 + 1;
      number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 8);
      if (puVar29 == q) {
        return;
      }
    } while( true );
  }
  if (uVar25 < 0x11) {
    if (uVar25 == 8) {
      if ((int)q < 1) {
        return;
      }
      puVar29 = (uchar *)0x0;
      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);
      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);
      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
      do {
        iVar26 = (int)(number_pixels >> 0x20);
        puVar12 = (undefined1 *)number_pixels;
        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);
        if (fVar42 <= 0.0) {
          uVar6 = 0;
        }
        else {
          dVar37 = (double)fVar42 / dVar34;
          if (dVar37 < dVar33) {
            dVar37 = dVar37 + dVar36;
            if (dVar37 < dVar35) {
              uVar6 = (undefined1)(int)dVar37;
            }
            else {
              uVar6 = (undefined1)(int)(dVar37 - dVar35);
            }
          }
          else {
            uVar6 = 0xff;
          }
        }
        *puVar12 = uVar6;
        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);
        if (fVar42 <= 0.0) {
          uVar6 = 0;
        }
        else {
          dVar37 = (double)fVar42 / dVar34;
          if (dVar37 < dVar33) {
            dVar37 = dVar37 + dVar36;
            if (dVar37 < dVar35) {
              uVar6 = (undefined1)(int)dVar37;
            }
            else {
              uVar6 = (undefined1)(int)(dVar37 - dVar35);
            }
          }
          else {
            uVar6 = 0xff;
          }
        }
        puVar12[1] = uVar6;
        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);
        if (fVar42 <= 0.0) {
          uVar6 = 0;
        }
        else {
          dVar37 = (double)fVar42 / dVar34;
          if (dVar37 < dVar33) {
            dVar37 = dVar37 + dVar36;
            if (dVar37 < dVar35) {
              uVar6 = (undefined1)(int)dVar37;
            }
            else {
              uVar6 = (undefined1)(int)(dVar37 - dVar35);
            }
          }
          else {
            uVar6 = 0xff;
          }
        }
        puVar12[2] = uVar6;
        if ((image->channel_map[4].traits != BlendPixelTrait) ||
           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))
        {
          uVar6 = 0;
        }
        else {
          dVar37 = (double)fVar42 / dVar34;
          if (dVar37 < dVar33) {
            dVar37 = dVar37 + dVar36;
            if (dVar37 < *(double *)(puVar2 + 0x1410)) {
              uVar6 = (undefined1)(int)dVar37;
            }
            else {
              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));
            }
          }
          else {
            uVar6 = 0xff;
          }
        }
        puVar12[3] = uVar6;
        puVar29 = puVar29 + 1;
        number_pixels =
             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 4);
      } while (puVar29 != q);
      return;
    }
    if (uVar25 == 10) {
      if (quantum_info->pack == MagickFalse) {
        if ((int)q < 1) {
          return;
        }
        iVar26 = 0;
        uVar25 = 0;
        dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1418);
        uVar43 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);
        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
        dVar34 = *(double *)(PTR_s_courses_003a88ec + -0x7538);
        dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
        dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
        do {
          iVar32 = (int)(number_pixels >> 0x20);
          puVar12 = (undefined1 *)number_pixels;
          iVar30 = 0;
          dVar48 = *(double *)(puVar4 + -0x7538);
          dVar50 = *(double *)(puVar2 + 0x1418);
          dVar46 = *(double *)(puVar2 + 0x1a58);
          dVar45 = *(double *)(puVar2 + 0x1a60);
          dVar49 = *(double *)(puVar2 + 0x1400);
          dVar47 = dVar50;
          do {
            pPVar8 = image->channel_map;
            if (iVar30 == 2) {
              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);
              if (fVar42 < (float)uVar43) {
                uVar9 = (uint)fVar42;
              }
              else {
                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;
              }
              dVar38 = (double)(int)uVar9;
              if ((int)uVar9 < 0) {
                dVar38 = dVar38 + dVar33;
              }
LAB_00164eec:
              fVar42 = (float)dVar38;
            }
            else {
              if (iVar30 != 3) {
                fVar42 = *(float *)(puVar3 + -0x51e0);
                if (iVar30 == 1) {
                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);
                  if (fVar40 < fVar42) {
                    uVar9 = (uint)fVar40;
                  }
                  else {
                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;
                  }
                  dVar38 = (double)(int)uVar9;
                  if ((int)uVar9 < 0) {
                    dVar38 = dVar38 + dVar50;
                  }
                }
                else {
                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);
                  if (fVar40 < fVar42) {
                    uVar9 = (uint)fVar40;
                  }
                  else {
                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;
                  }
                  dVar38 = (double)(int)uVar9;
                  if ((int)uVar9 < 0) {
                    dVar38 = dVar38 + dVar50;
                  }
                }
                goto LAB_00164eec;
              }
              fVar42 = 0.0;
              if (pPVar8[4].traits == BlendPixelTrait) {
                fVar40 = *(float *)(puVar3 + -0x51e0);
                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);
                if (fVar42 < fVar40) {
                  uVar9 = (uint)fVar42;
                }
                else {
                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;
                }
                dVar38 = (double)(int)uVar9;
                if ((int)uVar9 < 0) {
                  dVar38 = dVar38 + dVar47;
                }
                goto LAB_00164eec;
              }
            }
            uVar9 = (uint)(iVar30 + iVar26) % 3;
            if (uVar9 == 1) {
              if (0.0 < fVar42) {
                dVar38 = ((double)fVar42 * dVar34) / dVar35;
                if (dVar38 < dVar36) {
                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);
                  uVar25 = uVar25 | extraout_v1_01 << 0xc;
                }
                else {
                  uVar25 = 0xfffff000;
                }
              }
            }
            else if (uVar9 == 2) {
              if (0.0 < fVar42) {
                dVar38 = ((double)fVar42 * dVar48) / dVar46;
                if (dVar38 < dVar45) {
                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);
                  uVar25 = uVar25 | extraout_v1 << 2;
                }
                else {
                  uVar25 = 0xfffffffc;
                }
              }
              uVar6 = (undefined1)uVar25;
              uVar20 = (undefined1)(uVar25 >> 0x18);
              uVar16 = (undefined1)(uVar25 >> 0x10);
              uVar14 = (undefined1)(uVar25 >> 8);
              if (quantum_info->endian == LSBEndian) {
                *puVar12 = uVar6;
                uVar25 = 0;
                puVar12[1] = uVar14;
                puVar12[2] = uVar16;
                puVar12[3] = uVar20;
                puVar12 = puVar12 + 4;
              }
              else {
                uVar25 = 0;
                *puVar12 = uVar20;
                puVar12[1] = uVar16;
                puVar12[2] = uVar14;
                puVar12[3] = uVar6;
                puVar12 = puVar12 + 4;
              }
            }
            else if (0.0 < fVar42) {
              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /
                       *(double *)(puVar2 + 0x1a58);
              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {
                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));
                uVar25 = uVar25 | extraout_v1_00 << 0x16;
              }
              else {
                uVar25 = uVar25 | 0xffc00000;
              }
            }
            iVar30 = iVar30 + 1;
          } while (iVar30 != 4);
          iVar26 = iVar26 + 4;
          number_pixels = CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad);
          if (iVar26 == (int)q << 2) {
            return;
          }
        } while( true );
      }
      if (quantum_info->quantum == 0x20) {
        if ((int)q < 1) {
          return;
        }
        puVar29 = (uchar *)0x0;
        dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);
        dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
        dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
        dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
        uVar25 = 10;
        dVar33 = dVar45;
        dVar34 = dVar46;
        dVar35 = dVar48;
        dVar36 = dVar49;
        dVar37 = dVar48;
        dVar47 = dVar46;
        while( true ) {
          iVar26 = (int)(number_pixels >> 0x20);
          puVar12 = (undefined1 *)number_pixels;
          pPVar8 = image->channel_map;
          fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);
          if (NAN(fVar42)) {
            uVar9 = 0;
          }
          else {
            uVar9 = 0;
            if (0.0 < fVar42) {
              dVar50 = ((double)fVar42 * dVar35) / dVar34;
              if (dVar50 < dVar33) {
                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);
                uVar9 = extraout_v1_06;
              }
              else {
                uVar9 = 0xffffffff;
              }
            }
          }
          uVar10 = (quantum_info->state).bits;
          if (uVar10 == 0) {
            uVar10 = 0x20;
            (quantum_info->state).bits = 0x20;
          }
          if (0 < (int)uVar25) {
            bVar1 = uVar10 < uVar25;
            uVar17 = uVar25;
            puVar13 = puVar12;
            do {
              uVar11 = uVar10;
              if (!bVar1) {
                uVar11 = uVar17;
              }
              uVar18 = uVar25 - uVar17;
              uVar28 = 0x20 - uVar10;
              uVar10 = uVar10 - uVar11;
              uVar17 = uVar17 - uVar11;
              uVar11 = (quantum_info->state).mask[uVar11];
              (quantum_info->state).bits = uVar10;
              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |
                       (quantum_info->state).pixel;
              (quantum_info->state).pixel = uVar11;
              puVar12 = puVar13;
              if (uVar10 == 0) {
                puVar12 = puVar13 + 4;
                uVar16 = (undefined1)(uVar11 >> 0x18);
                uVar14 = (undefined1)(uVar11 >> 0x10);
                uVar6 = (undefined1)(uVar11 >> 8);
                if (quantum_info->endian == LSBEndian) {
                  *puVar13 = (char)uVar11;
                  puVar13[1] = uVar6;
                  puVar13[2] = uVar14;
                  puVar13[3] = uVar16;
                }
                else {
                  *puVar13 = uVar16;
                  puVar13[1] = uVar14;
                  puVar13[2] = uVar6;
                  puVar13[3] = (char)uVar11;
                }
                uVar25 = quantum_info->depth;
                uVar10 = 0x20;
                (quantum_info->state).pixel = 0;
                (quantum_info->state).bits = 0x20;
              }
              bVar1 = uVar10 < uVar17;
              puVar13 = puVar12;
            } while (0 < (int)uVar17);
            pPVar8 = image->channel_map;
          }
          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);
          if (fVar42 <= 0.0) {
            uVar9 = 0;
          }
          else {
            dVar50 = ((double)fVar42 * dVar37) / dVar47;
            if (dVar50 < dVar45) {
              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);
              uVar9 = extraout_v1_07;
            }
            else {
              uVar9 = 0xffffffff;
            }
          }
          bVar1 = uVar10 < uVar25;
          uVar17 = uVar25;
          puVar13 = puVar12;
          if (0 < (int)uVar25) {
            do {
              uVar11 = uVar10;
              if (!bVar1) {
                uVar11 = uVar17;
              }
              uVar28 = 0x20 - uVar10;
              uVar10 = uVar10 - uVar11;
              uVar18 = uVar17 - uVar11;
              uVar11 = (quantum_info->state).mask[uVar11];
              (quantum_info->state).bits = uVar10;
              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |
                       (quantum_info->state).pixel;
              (quantum_info->state).pixel = uVar17;
              puVar13 = puVar12;
              if (uVar10 == 0) {
                puVar13 = puVar12 + 4;
                uVar16 = (undefined1)(uVar17 >> 0x18);
                uVar14 = (undefined1)(uVar17 >> 0x10);
                uVar6 = (undefined1)(uVar17 >> 8);
                if (quantum_info->endian == LSBEndian) {
                  *puVar12 = (char)uVar17;
                  puVar12[1] = uVar6;
                  puVar12[2] = uVar14;
                  puVar12[3] = uVar16;
                }
                else {
                  *puVar12 = uVar16;
                  puVar12[1] = uVar14;
                  puVar12[2] = uVar6;
                  puVar12[3] = (char)uVar17;
                }
                uVar25 = quantum_info->depth;
                uVar10 = 0x20;
                (quantum_info->state).pixel = 0;
                (quantum_info->state).bits = 0x20;
              }
              bVar1 = uVar10 < uVar18;
              uVar17 = uVar18;
              puVar12 = puVar13;
            } while (0 < (int)uVar18);
            pPVar8 = image->channel_map;
          }
          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);
          if (fVar42 <= 0.0) {
            uVar9 = 0;
          }
          else {
            dVar50 = ((double)fVar42 * dVar48) / dVar46;
            if (dVar50 < dVar45) {
              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);
              uVar9 = extraout_v1_08;
            }
            else {
              uVar9 = 0xffffffff;
            }
          }
          bVar1 = uVar10 < uVar25;
          uVar17 = uVar25;
          puVar12 = puVar13;
          if (0 < (int)uVar25) {
            do {
              uVar11 = uVar10;
              if (!bVar1) {
                uVar11 = uVar17;
              }
              uVar28 = 0x20 - uVar10;
              uVar10 = uVar10 - uVar11;
              uVar18 = uVar17 - uVar11;
              uVar11 = (quantum_info->state).mask[uVar11];
              (quantum_info->state).bits = uVar10;
              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |
                       (quantum_info->state).pixel;
              (quantum_info->state).pixel = uVar17;
              puVar12 = puVar13;
              if (uVar10 == 0) {
                puVar12 = puVar13 + 4;
                uVar16 = (undefined1)(uVar17 >> 0x18);
                uVar14 = (undefined1)(uVar17 >> 0x10);
                uVar6 = (undefined1)(uVar17 >> 8);
                if (quantum_info->endian == LSBEndian) {
                  *puVar13 = (char)uVar17;
                  puVar13[1] = uVar6;
                  puVar13[2] = uVar14;
                  puVar13[3] = uVar16;
                }
                else {
                  *puVar13 = uVar16;
                  puVar13[1] = uVar14;
                  puVar13[2] = uVar6;
                  puVar13[3] = (char)uVar17;
                }
                uVar25 = quantum_info->depth;
                uVar10 = 0x20;
                (quantum_info->state).pixel = 0;
                (quantum_info->state).bits = 0x20;
              }
              bVar1 = uVar10 < uVar18;
              uVar17 = uVar18;
              puVar13 = puVar12;
            } while (0 < (int)uVar18);
            pPVar8 = image->channel_map;
          }
          if ((pPVar8[4].traits != BlendPixelTrait) ||
             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)) {
            uVar9 = 0;
          }
          else {
            dVar50 = ((double)fVar42 * dVar48) / dVar46;
            if (dVar50 < dVar45) {
              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));
              uVar9 = extraout_v1_09;
            }
            else {
              uVar9 = 0xffffffff;
            }
          }
          uVar10 = uVar25;
          puVar13 = puVar12;
          if (0 < (int)uVar25) {
            while( true ) {
              uVar11 = (quantum_info->state).bits;
              uVar17 = uVar11;
              if (uVar10 <= uVar11) {
                uVar17 = uVar10;
              }
              uVar28 = (quantum_info->state).mask[uVar17];
              (quantum_info->state).bits = uVar11 - uVar17;
              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |
                       (quantum_info->state).pixel;
              (quantum_info->state).pixel = uVar25;
              puVar12 = puVar13;
              if (uVar11 - uVar17 == 0) {
                puVar12 = puVar13 + 4;
                uVar16 = (undefined1)(uVar25 >> 0x18);
                uVar14 = (undefined1)(uVar25 >> 0x10);
                uVar6 = (undefined1)(uVar25 >> 8);
                if (quantum_info->endian == LSBEndian) {
                  *puVar13 = (char)uVar25;
                  puVar13[1] = uVar6;
                  puVar13[2] = uVar14;
                  puVar13[3] = uVar16;
                }
                else {
                  *puVar13 = uVar16;
                  puVar13[1] = uVar14;
                  puVar13[2] = uVar6;
                  puVar13[3] = (char)uVar25;
                }
                (quantum_info->state).pixel = 0;
                (quantum_info->state).bits = 0x20;
              }
              if ((int)(uVar10 - uVar17) < 1) break;
              uVar25 = quantum_info->depth;
              uVar10 = uVar10 - uVar17;
              puVar13 = puVar12;
            }
          }
          puVar29 = puVar29 + 1;
          number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad);
          if (puVar29 == q) break;
          uVar25 = quantum_info->depth;
        }
        return;
      }
      if ((int)q < 1) {
        return;
      }
      puVar29 = (uchar *)0x0;
      dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);
      dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
      dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
      dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
      uVar25 = 10;
      dVar33 = dVar45;
      dVar34 = dVar46;
      dVar35 = dVar48;
      dVar36 = dVar49;
      dVar37 = dVar48;
      dVar47 = dVar46;
      do {
        iVar26 = (int)(number_pixels >> 0x20);
        pbVar31 = (byte *)number_pixels;
        pPVar8 = image->channel_map;
        fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);
        if (NAN(fVar42)) {
          uVar9 = 0;
        }
        else {
          uVar9 = 0;
          if (0.0 < fVar42) {
            dVar50 = ((double)fVar42 * dVar35) / dVar34;
            if (dVar50 < dVar33) {
              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);
              uVar9 = extraout_v1_02;
            }
            else {
              uVar9 = 0xffffffff;
            }
          }
        }
        sVar27 = (quantum_info->state).bits;
        if (sVar27 == 0) {
          sVar27 = 8;
          (quantum_info->state).bits = 8;
        }
        if ((int)uVar25 < 1) {
          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);
          if (!NAN(fVar42)) goto LAB_00166458;
          uVar9 = 0;
        }
        else {
          do {
            while( true ) {
              uVar10 = sVar27;
              if (uVar25 <= sVar27) {
                uVar10 = uVar25;
              }
              uVar17 = uVar25 - uVar10;
              uVar25 = uVar17;
              if ((int)uVar17 < 0) {
                uVar25 = 0;
              }
              if (sVar27 == 8) {
                *pbVar31 = 0;
              }
              uVar11 = uVar9 >> (uVar25 & 0x1f);
              if ((uVar25 & 0x20) != 0) {
                uVar11 = 0;
              }
              uVar28 = sVar27 - uVar10;
              (quantum_info->state).bits = uVar28;
              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));
              if ((uVar28 & 0x20) != 0) {
                bVar15 = 0;
              }
              *pbVar31 = bVar15 | *pbVar31;
              if (uVar28 != 0) break;
              pbVar31 = pbVar31 + 1;
              (quantum_info->state).bits = 8;
              sVar27 = 8;
              if ((int)uVar17 < 1) goto LAB_00166434;
            }
            sVar27 = (quantum_info->state).bits;
          } while (0 < (int)uVar17);
LAB_00166434:
          pPVar8 = image->channel_map;
          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);
          uVar25 = quantum_info->depth;
          if (NAN(fVar42)) {
LAB_00166cbc:
            uVar9 = 0;
          }
          else {
LAB_00166458:
            if (fVar42 <= 0.0) goto LAB_00166cbc;
            dVar50 = ((double)fVar42 * dVar37) / dVar47;
            if (dVar50 < dVar45) {
              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);
              uVar9 = extraout_v1_03;
            }
            else {
              uVar9 = 0xffffffff;
            }
          }
          if (sVar27 == 0) {
            sVar27 = 8;
            (quantum_info->state).bits = 8;
          }
        }
        if ((int)uVar25 < 1) {
          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);
          if (!NAN(fVar42)) goto LAB_00166550;
          uVar9 = 0;
        }
        else {
          do {
            while( true ) {
              uVar10 = sVar27;
              if (uVar25 <= sVar27) {
                uVar10 = uVar25;
              }
              uVar17 = uVar25 - uVar10;
              uVar25 = uVar17;
              if ((int)uVar17 < 0) {
                uVar25 = 0;
              }
              if (sVar27 == 8) {
                *pbVar31 = 0;
              }
              uVar11 = uVar9 >> (uVar25 & 0x1f);
              if ((uVar25 & 0x20) != 0) {
                uVar11 = 0;
              }
              uVar28 = sVar27 - uVar10;
              (quantum_info->state).bits = uVar28;
              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));
              if ((uVar28 & 0x20) != 0) {
                bVar15 = 0;
              }
              *pbVar31 = bVar15 | *pbVar31;
              if (uVar28 != 0) break;
              pbVar31 = pbVar31 + 1;
              (quantum_info->state).bits = 8;
              sVar27 = 8;
              if ((int)uVar17 < 1) goto LAB_0016652c;
            }
            sVar27 = (quantum_info->state).bits;
          } while (0 < (int)uVar17);
LAB_0016652c:
          pPVar8 = image->channel_map;
          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);
          uVar25 = quantum_info->depth;
          if (NAN(fVar42)) {
LAB_00166cb4:
            uVar9 = 0;
          }
          else {
LAB_00166550:
            if (fVar42 <= 0.0) goto LAB_00166cb4;
            dVar50 = ((double)fVar42 * dVar48) / dVar46;
            if (dVar50 < dVar45) {
              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);
              uVar9 = extraout_v1_04;
            }
            else {
              uVar9 = 0xffffffff;
            }
          }
          if (sVar27 == 0) {
            sVar27 = 8;
            (quantum_info->state).bits = 8;
          }
        }
        if ((int)uVar25 < 1) {
          uVar10 = 0;
          uVar9 = uVar25;
          if (pPVar8[4].traits == BlendPixelTrait) goto LAB_00166c44;
        }
        else {
          do {
            while( true ) {
              uVar10 = sVar27;
              if (uVar25 <= sVar27) {
                uVar10 = uVar25;
              }
              uVar17 = uVar25 - uVar10;
              uVar25 = uVar17;
              if ((int)uVar17 < 0) {
                uVar25 = 0;
              }
              if (sVar27 == 8) {
                *pbVar31 = 0;
              }
              uVar11 = uVar9 >> (uVar25 & 0x1f);
              if ((uVar25 & 0x20) != 0) {
                uVar11 = 0;
              }
              uVar28 = sVar27 - uVar10;
              (quantum_info->state).bits = uVar28;
              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));
              if ((uVar28 & 0x20) != 0) {
                bVar15 = 0;
              }
              *pbVar31 = bVar15 | *pbVar31;
              if (uVar28 != 0) break;
              pbVar31 = pbVar31 + 1;
              (quantum_info->state).bits = 8;
              sVar27 = 8;
              if ((int)uVar17 < 1) goto LAB_0016662c;
            }
            sVar27 = (quantum_info->state).bits;
          } while (0 < (int)uVar17);
LAB_0016662c:
          pPVar8 = image->channel_map;
          uVar25 = quantum_info->depth;
          if (pPVar8[4].traits == BlendPixelTrait) {
LAB_00166c44:
            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);
            if (fVar42 <= 0.0) goto LAB_00166640;
            dVar50 = ((double)fVar42 * dVar48) / dVar46;
            if (dVar50 < dVar45) {
              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));
              uVar10 = extraout_v1_05;
            }
            else {
              uVar10 = 0xffffffff;
            }
          }
          else {
LAB_00166640:
            uVar10 = 0;
          }
          uVar9 = uVar25;
          if (sVar27 == 0) {
            (quantum_info->state).bits = 8;
          }
        }
        while (0 < (int)uVar9) {
          uVar11 = (quantum_info->state).bits;
          uVar17 = uVar11;
          if (uVar25 <= uVar11) {
            uVar17 = uVar25;
          }
          uVar9 = uVar25 - uVar17;
          uVar25 = uVar9;
          if ((int)uVar9 < 0) {
            uVar25 = 0;
          }
          if (uVar11 == 8) {
            *pbVar31 = 0;
          }
          uVar28 = uVar10 >> (uVar25 & 0x1f);
          if ((uVar25 & 0x20) != 0) {
            uVar28 = 0;
          }
          uVar11 = uVar11 - uVar17;
          (quantum_info->state).bits = uVar11;
          bVar15 = (byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f));
          if ((uVar11 & 0x20) != 0) {
            bVar15 = 0;
          }
          *pbVar31 = bVar15 | *pbVar31;
          if (uVar11 == 0) {
            pbVar31 = pbVar31 + 1;
            (quantum_info->state).bits = 8;
          }
        }
        puVar29 = puVar29 + 1;
        number_pixels = CONCAT44(iVar26 + image->number_channels * 4,pbVar31 + quantum_info->pad);
        if (puVar29 == q) {
          return;
        }
        uVar25 = quantum_info->depth;
      } while( true );
    }
LAB_00165538:
    if (uVar25 == 0) {
      local_c0 = 0;
      local_b8 = 0;
      goto LAB_0016507c;
    }
  }
  else {
    if (uVar25 == 0x20) {
      if (quantum_info->format == FloatingPointQuantumFormat) {
        if ((int)q < 1) {
          return;
        }
        puVar29 = (uchar *)0x0;
        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
        do {
          iVar26 = (int)(number_pixels >> 0x20);
          puVar12 = (undefined1 *)number_pixels;
          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *
                           (quantum_info->state).inverse_scale + quantum_info->minimum);
          uVar16 = (undefined1)((uint)fVar42 >> 8);
          uVar14 = (undefined1)((uint)fVar42 >> 0x10);
          uVar6 = (undefined1)((uint)fVar42 >> 0x18);
          if (quantum_info->endian == LSBEndian) {
            *puVar12 = uVar6;
            puVar12[1] = uVar14;
            puVar12[2] = uVar16;
            puVar12[3] = SUB41(fVar42,0);
          }
          else {
            *puVar12 = SUB41(fVar42,0);
            puVar12[1] = uVar16;
            puVar12[2] = uVar14;
            puVar12[3] = uVar6;
          }
          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *
                           (quantum_info->state).inverse_scale + quantum_info->minimum);
          uVar16 = (undefined1)((uint)fVar42 >> 8);
          uVar14 = (undefined1)((uint)fVar42 >> 0x10);
          uVar6 = (undefined1)((uint)fVar42 >> 0x18);
          if (quantum_info->endian == LSBEndian) {
            puVar12[4] = uVar6;
            puVar12[5] = uVar14;
            puVar12[6] = uVar16;
            puVar12[7] = SUB41(fVar42,0);
          }
          else {
            puVar12[4] = SUB41(fVar42,0);
            puVar12[5] = uVar16;
            puVar12[6] = uVar14;
            puVar12[7] = uVar6;
          }
          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *
                           (quantum_info->state).inverse_scale + quantum_info->minimum);
          uVar16 = (undefined1)((uint)fVar42 >> 8);
          uVar14 = (undefined1)((uint)fVar42 >> 0x10);
          uVar6 = (undefined1)((uint)fVar42 >> 0x18);
          if (quantum_info->endian == LSBEndian) {
            puVar12[8] = uVar6;
            puVar12[9] = uVar14;
            puVar12[10] = uVar16;
            puVar12[0xb] = SUB41(fVar42,0);
          }
          else {
            puVar12[8] = SUB41(fVar42,0);
            puVar12[9] = uVar16;
            puVar12[10] = uVar14;
            puVar12[0xb] = uVar6;
          }
          if (image->channel_map[4].traits == BlendPixelTrait) {
            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));
          }
          else {
            dVar33 = 0.0;
          }
          fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum);
          uVar16 = (undefined1)((uint)fVar42 >> 8);
          uVar14 = (undefined1)((uint)fVar42 >> 0x10);
          uVar6 = (undefined1)((uint)fVar42 >> 0x18);
          if (quantum_info->endian == LSBEndian) {
            puVar12[0xc] = uVar6;
            puVar12[0xd] = uVar14;
            puVar12[0xe] = uVar16;
            puVar12[0xf] = SUB41(fVar42,0);
          }
          else {
            puVar12[0xc] = SUB41(fVar42,0);
            puVar12[0xd] = uVar16;
            puVar12[0xe] = uVar14;
            puVar12[0xf] = uVar6;
          }
          puVar29 = puVar29 + 1;
          number_pixels =
               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);
        } while (puVar29 != q);
        return;
      }
      if ((int)q < 1) {
        return;
      }
      puVar29 = (uchar *)0x0;
      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);
      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);
      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
      do {
        iVar26 = (int)(number_pixels >> 0x20);
        puVar12 = (undefined1 *)number_pixels;
        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);
        if (fVar42 <= 0.0) {
          uVar7 = 0;
          uVar14 = 0;
          uVar6 = 0;
          uVar23 = 0;
          uVar16 = 0;
          uVar20 = 0;
          uVar22 = 0;
          uVar24 = 0;
          if (quantum_info->endian != LSBEndian) goto LAB_00165ecc;
LAB_001660ec:
          *puVar12 = uVar16;
          puVar12[1] = uVar20;
          puVar12[2] = uVar22;
          puVar12[3] = uVar24;
        }
        else {
          dVar37 = (double)fVar42 * dVar34;
          uVar14 = 0xff;
          if (dVar37 < dVar33) {
            dVar37 = dVar37 + dVar36;
            if (dVar37 < dVar35) {
              uVar25 = (uint)dVar37;
            }
            else {
              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;
            }
            uVar23 = (undefined1)(uVar25 >> 0x18);
            uVar6 = (undefined1)(uVar25 >> 0x10);
            uVar14 = (undefined1)(uVar25 >> 8);
            uVar7 = (undefined1)uVar25;
          }
          else {
            uVar7 = 0xff;
            uVar6 = 0xff;
            uVar23 = 0xff;
          }
          uVar16 = uVar7;
          uVar20 = uVar14;
          uVar22 = uVar6;
          uVar24 = uVar23;
          if (quantum_info->endian == LSBEndian) goto LAB_001660ec;
LAB_00165ecc:
          *puVar12 = uVar23;
          puVar12[1] = uVar6;
          puVar12[2] = uVar14;
          puVar12[3] = uVar7;
        }
        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);
        if (fVar42 <= 0.0) {
          uVar7 = 0;
          uVar14 = 0;
          uVar6 = 0;
          uVar23 = 0;
          uVar16 = 0;
          uVar20 = 0;
          uVar22 = 0;
          uVar24 = 0;
          if (quantum_info->endian != LSBEndian) goto LAB_00165f54;
LAB_0016611c:
          puVar12[4] = uVar16;
          puVar12[5] = uVar20;
          puVar12[6] = uVar22;
          puVar12[7] = uVar24;
        }
        else {
          dVar37 = (double)fVar42 * dVar34;
          uVar14 = 0xff;
          if (dVar37 < dVar33) {
            dVar37 = dVar37 + dVar36;
            if (dVar37 < dVar35) {
              uVar25 = (uint)dVar37;
            }
            else {
              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;
            }
            uVar23 = (undefined1)(uVar25 >> 0x18);
            uVar6 = (undefined1)(uVar25 >> 0x10);
            uVar14 = (undefined1)(uVar25 >> 8);
            uVar7 = (undefined1)uVar25;
          }
          else {
            uVar7 = 0xff;
            uVar6 = 0xff;
            uVar23 = 0xff;
          }
          uVar16 = uVar7;
          uVar20 = uVar14;
          uVar22 = uVar6;
          uVar24 = uVar23;
          if (quantum_info->endian == LSBEndian) goto LAB_0016611c;
LAB_00165f54:
          puVar12[4] = uVar23;
          puVar12[5] = uVar6;
          puVar12[6] = uVar14;
          puVar12[7] = uVar7;
        }
        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);
        if (fVar42 <= 0.0) {
          uVar7 = 0;
          uVar14 = 0;
          uVar6 = 0;
          uVar23 = 0;
          uVar16 = 0;
          uVar20 = 0;
          uVar22 = 0;
          uVar24 = 0;
          if (quantum_info->endian != LSBEndian) goto LAB_00165fe8;
LAB_001660b8:
          puVar12[8] = uVar16;
          puVar12[9] = uVar20;
          puVar12[10] = uVar22;
          puVar12[0xb] = uVar24;
        }
        else {
          dVar37 = (double)fVar42 * dVar34;
          uVar14 = 0xff;
          if (dVar37 < dVar33) {
            dVar37 = dVar37 + dVar36;
            if (dVar37 < dVar35) {
              uVar25 = (uint)dVar37;
            }
            else {
              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;
            }
            uVar23 = (undefined1)(uVar25 >> 0x18);
            uVar6 = (undefined1)(uVar25 >> 0x10);
            uVar14 = (undefined1)(uVar25 >> 8);
            uVar7 = (undefined1)uVar25;
          }
          else {
            uVar7 = 0xff;
            uVar6 = 0xff;
            uVar23 = 0xff;
          }
          uVar16 = uVar7;
          uVar20 = uVar14;
          uVar22 = uVar6;
          uVar24 = uVar23;
          if (quantum_info->endian == LSBEndian) goto LAB_001660b8;
LAB_00165fe8:
          puVar12[8] = uVar23;
          puVar12[9] = uVar6;
          puVar12[10] = uVar14;
          puVar12[0xb] = uVar7;
        }
        if ((image->channel_map[4].traits != BlendPixelTrait) ||
           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))
        {
          uVar16 = 0;
          uVar14 = 0;
          uVar6 = 0;
          uVar20 = 0;
LAB_00165e14:
          if (quantum_info->endian != LSBEndian) goto LAB_00165e24;
LAB_00166084:
          puVar12[0xc] = uVar16;
          puVar12[0xd] = uVar14;
          puVar12[0xe] = uVar6;
          puVar12[0xf] = uVar20;
        }
        else {
          dVar37 = (double)fVar42 * dVar34;
          if (dVar33 <= dVar37) {
            uVar16 = 0xff;
            uVar14 = 0xff;
            uVar6 = 0xff;
            uVar20 = 0xff;
            goto LAB_00165e14;
          }
          dVar37 = dVar37 + dVar36;
          if (dVar37 < *(double *)(puVar2 + 0x1410)) {
            uVar25 = (uint)dVar37;
          }
          else {
            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;
          }
          uVar20 = (undefined1)(uVar25 >> 0x18);
          uVar6 = (undefined1)(uVar25 >> 0x10);
          uVar14 = (undefined1)(uVar25 >> 8);
          uVar16 = (undefined1)uVar25;
          if (quantum_info->endian == LSBEndian) goto LAB_00166084;
LAB_00165e24:
          puVar12[0xc] = uVar20;
          puVar12[0xd] = uVar6;
          puVar12[0xe] = uVar14;
          puVar12[0xf] = uVar16;
        }
        puVar29 = puVar29 + 1;
        number_pixels =
             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);
        if (puVar29 == q) {
          return;
        }
      } while( true );
    }
    if (uVar25 != 0x40) goto LAB_00165538;
    if (quantum_info->format == FloatingPointQuantumFormat) {
      if ((int)q < 1) {
        return;
      }
      puVar29 = (uchar *)0x0;
      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
      do {
        iVar26 = (int)(number_pixels >> 0x20);
        puVar12 = (undefined1 *)number_pixels;
        dVar33 = (double)*(float *)(iVar26 + image->channel_map->offset * 4) *
                 (quantum_info->state).inverse_scale + quantum_info->minimum;
        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x20);
        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);
        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);
        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x18);
        uVar22 = (undefined1)((ulonglong)dVar33 >> 0x28);
        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x30);
        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x38);
        if (quantum_info->endian == LSBEndian) {
          *puVar12 = uVar14;
          puVar12[1] = uVar20;
          puVar12[2] = uVar22;
          puVar12[3] = uVar6;
          puVar12[4] = uVar16;
          puVar12[5] = uVar24;
          puVar12[6] = uVar7;
          puVar12[7] = SUB81(dVar33,0);
        }
        else {
          *puVar12 = SUB81(dVar33,0);
          puVar12[1] = uVar7;
          puVar12[2] = uVar24;
          puVar12[3] = uVar16;
          puVar12[4] = uVar6;
          puVar12[5] = uVar22;
          puVar12[6] = uVar20;
          puVar12[7] = uVar14;
        }
        dVar33 = (double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *
                 (quantum_info->state).inverse_scale + quantum_info->minimum;
        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);
        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);
        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);
        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);
        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);
        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);
        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);
        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);
        if (quantum_info->endian == LSBEndian) {
          puVar12[8] = uVar6;
          puVar12[9] = uVar16;
          puVar12[10] = uVar20;
          puVar12[0xb] = uVar22;
          puVar12[0xc] = uVar14;
          puVar12[0xd] = uVar24;
          puVar12[0xe] = uVar7;
          puVar12[0xf] = uVar23;
        }
        else {
          puVar12[8] = uVar23;
          puVar12[9] = uVar7;
          puVar12[10] = uVar24;
          puVar12[0xb] = uVar14;
          puVar12[0xc] = uVar22;
          puVar12[0xd] = uVar20;
          puVar12[0xe] = uVar16;
          puVar12[0xf] = uVar6;
        }
        dVar33 = (double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *
                 (quantum_info->state).inverse_scale + quantum_info->minimum;
        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);
        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);
        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);
        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);
        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);
        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);
        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);
        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);
        if (quantum_info->endian == LSBEndian) {
          puVar12[0x10] = uVar6;
          puVar12[0x11] = uVar16;
          puVar12[0x12] = uVar20;
          puVar12[0x13] = uVar22;
          puVar12[0x14] = uVar14;
          puVar12[0x15] = uVar24;
          puVar12[0x16] = uVar7;
          puVar12[0x17] = uVar23;
        }
        else {
          puVar12[0x10] = uVar23;
          puVar12[0x11] = uVar7;
          puVar12[0x12] = uVar24;
          puVar12[0x13] = uVar14;
          puVar12[0x14] = uVar22;
          puVar12[0x15] = uVar20;
          puVar12[0x16] = uVar16;
          puVar12[0x17] = uVar6;
        }
        if (image->channel_map[4].traits == BlendPixelTrait) {
          dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));
        }
        else {
          dVar33 = 0.0;
        }
        dVar33 = dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum;
        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);
        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);
        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);
        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);
        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);
        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);
        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);
        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);
        if (quantum_info->endian == LSBEndian) {
          puVar12[0x18] = uVar6;
          puVar12[0x19] = uVar16;
          puVar12[0x1a] = uVar20;
          puVar12[0x1b] = uVar22;
          puVar12[0x1c] = uVar14;
          puVar12[0x1d] = uVar24;
          puVar12[0x1e] = uVar7;
          puVar12[0x1f] = uVar23;
        }
        else {
          puVar12[0x18] = uVar23;
          puVar12[0x19] = uVar7;
          puVar12[0x1a] = uVar24;
          puVar12[0x1b] = uVar14;
          puVar12[0x1c] = uVar22;
          puVar12[0x1d] = uVar20;
          puVar12[0x1e] = uVar16;
          puVar12[0x1f] = uVar6;
        }
        puVar29 = puVar29 + 1;
        number_pixels =
             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20);
      } while (puVar29 != q);
      return;
    }
  }
  uVar9 = 0;
  if (uVar25 < 0x41) {
    uVar9 = uVar25;
  }
  uVar9 = uVar9 - 1;
  uVar11 = 2 << (uVar9 & 0x1f);
  uVar17 = uVar11;
  uVar10 = 1 >> (~uVar9 & 0x1f);
  if ((uVar9 & 0x20) != 0) {
    uVar17 = 0;
    uVar10 = uVar11;
  }
  local_b8 = uVar17 - 1;
  local_c0 = (uint)(local_b8 < uVar17) + (uVar10 - 1);
LAB_0016507c:
  if ((int)q < 1) {
    return;
  }
  uVar44 = 0;
  pPVar8 = image->channel_map;
  puVar29 = (uchar *)0x0;
  dVar47 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
  dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
  dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
  fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
  fVar42 = *(float *)(number_pixels._0_4_ + pPVar8[2].offset * 4);
  dVar33 = dVar37;
  dVar34 = dVar47;
  dVar35 = dVar45;
  dVar36 = dVar37;
  if (!NAN(fVar42)) goto LAB_001650f0;
LAB_00165520:
  do {
    uVar51 = 0;
LAB_00165130:
    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);
    iVar26 = (int)(number_pixels >> 0x20);
    pbVar31 = (byte *)number_pixels;
    sVar27 = (quantum_info->state).bits;
    if (sVar27 == 0) {
      sVar27 = 8;
      (quantum_info->state).bits = 8;
    }
    if ((int)uVar25 < 1) {
      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);
      if (!NAN(fVar42)) goto LAB_00165204;
      uVar51 = 0;
    }
    else {
      do {
        while( true ) {
          uVar10 = sVar27;
          if (uVar25 <= sVar27) {
            uVar10 = uVar25;
          }
          uVar17 = uVar25 - uVar10;
          uVar25 = uVar17;
          if ((int)uVar17 < 0) {
            uVar25 = 0;
          }
          if (sVar27 == 8) {
            *pbVar31 = 0;
          }
          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);
          if ((uVar25 & 0x20) != 0) {
            uVar11 = uVar9 >> (uVar25 & 0x1f);
          }
          uVar28 = sVar27 - uVar10;
          (quantum_info->state).bits = uVar28;
          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));
          if ((uVar28 & 0x20) != 0) {
            bVar15 = 0;
          }
          *pbVar31 = bVar15 | *pbVar31;
          if (uVar28 != 0) break;
          pbVar31 = pbVar31 + 1;
          (quantum_info->state).bits = 8;
          sVar27 = 8;
          if ((int)uVar17 < 1) goto LAB_001651e4;
        }
        sVar27 = (quantum_info->state).bits;
      } while (0 < (int)uVar17);
LAB_001651e4:
      pPVar8 = image->channel_map;
      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);
      uVar25 = quantum_info->depth;
      if (NAN(fVar42)) {
LAB_001655cc:
        uVar51 = 0;
      }
      else {
LAB_00165204:
        if (fVar42 <= (float)uVar44) goto LAB_001655cc;
        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);
        dVar46 = (dVar46 * (double)fVar42) / dVar47;
        if (dVar46 < dVar36) {
          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);
        }
        else {
          uVar51 = 0xffffffffffffffff;
        }
      }
      if (sVar27 == 0) {
        sVar27 = 8;
        (quantum_info->state).bits = 8;
      }
    }
    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);
    if ((int)uVar25 < 1) {
      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);
      if (!NAN(fVar42)) goto LAB_0016531c;
      uVar51 = 0;
    }
    else {
      do {
        while( true ) {
          uVar10 = sVar27;
          if (uVar25 <= sVar27) {
            uVar10 = uVar25;
          }
          uVar17 = uVar25 - uVar10;
          uVar25 = uVar17;
          if ((int)uVar17 < 0) {
            uVar25 = 0;
          }
          if (sVar27 == 8) {
            *pbVar31 = 0;
          }
          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);
          if ((uVar25 & 0x20) != 0) {
            uVar11 = uVar9 >> (uVar25 & 0x1f);
          }
          uVar28 = sVar27 - uVar10;
          (quantum_info->state).bits = uVar28;
          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));
          if ((uVar28 & 0x20) != 0) {
            bVar15 = 0;
          }
          *pbVar31 = bVar15 | *pbVar31;
          if (uVar28 != 0) break;
          pbVar31 = pbVar31 + 1;
          (quantum_info->state).bits = 8;
          sVar27 = 8;
          if ((int)uVar17 < 1) goto LAB_001652fc;
        }
        sVar27 = (quantum_info->state).bits;
      } while (0 < (int)uVar17);
LAB_001652fc:
      pPVar8 = image->channel_map;
      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);
      uVar25 = quantum_info->depth;
      if (NAN(fVar42)) {
LAB_001655c0:
        uVar51 = 0;
      }
      else {
LAB_0016531c:
        if (fVar42 <= (float)uVar44) goto LAB_001655c0;
        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);
        dVar46 = (dVar46 * (double)fVar42) / dVar47;
        if (dVar46 < dVar37) {
          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);
        }
        else {
          uVar51 = 0xffffffffffffffff;
        }
      }
      if (sVar27 == 0) {
        sVar27 = 8;
        (quantum_info->state).bits = 8;
      }
    }
    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);
    if ((int)uVar25 < 1) {
      if (pPVar8[4].traits == BlendPixelTrait) goto LAB_0016554c;
      uVar51 = 0;
    }
    else {
      do {
        while( true ) {
          uVar10 = sVar27;
          if (uVar25 <= sVar27) {
            uVar10 = uVar25;
          }
          uVar17 = uVar25 - uVar10;
          uVar25 = uVar17;
          if ((int)uVar17 < 0) {
            uVar25 = 0;
          }
          if (sVar27 == 8) {
            *pbVar31 = 0;
          }
          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);
          if ((uVar25 & 0x20) != 0) {
            uVar11 = uVar9 >> (uVar25 & 0x1f);
          }
          uVar28 = sVar27 - uVar10;
          (quantum_info->state).bits = uVar28;
          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));
          if ((uVar28 & 0x20) != 0) {
            bVar15 = 0;
          }
          *pbVar31 = bVar15 | *pbVar31;
          if (uVar28 != 0) break;
          pbVar31 = pbVar31 + 1;
          (quantum_info->state).bits = 8;
          sVar27 = 8;
          if ((int)uVar17 < 1) goto LAB_00165418;
        }
        sVar27 = (quantum_info->state).bits;
      } while (0 < (int)uVar17);
LAB_00165418:
      pPVar8 = image->channel_map;
      uVar25 = quantum_info->depth;
      if (pPVar8[4].traits == BlendPixelTrait) {
LAB_0016554c:
        fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);
        if (fVar42 <= (float)uVar44) goto LAB_00165430;
        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);
        dVar46 = (dVar46 * (double)fVar42) / dVar47;
        if (dVar46 < dVar37) {
          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);
        }
        else {
          uVar51 = 0xffffffffffffffff;
        }
      }
      else {
LAB_00165430:
        uVar51 = 0;
      }
      if (sVar27 == 0) {
        (quantum_info->state).bits = 8;
      }
    }
    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);
    if (0 < (int)uVar25) {
      do {
        uVar17 = (quantum_info->state).bits;
        uVar10 = uVar17;
        if (uVar25 <= uVar17) {
          uVar10 = uVar25;
        }
        uVar11 = uVar25 - uVar10;
        uVar25 = uVar11;
        if ((int)uVar11 < 0) {
          uVar25 = 0;
        }
        if (uVar17 == 8) {
          *pbVar31 = 0;
        }
        uVar28 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);
        if ((uVar25 & 0x20) != 0) {
          uVar28 = uVar9 >> (uVar25 & 0x1f);
        }
        uVar17 = uVar17 - uVar10;
        (quantum_info->state).bits = uVar17;
        bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f));
        if ((uVar17 & 0x20) != 0) {
          bVar15 = 0;
        }
        *pbVar31 = bVar15 | *pbVar31;
        if (uVar17 == 0) {
          pbVar31 = pbVar31 + 1;
          (quantum_info->state).bits = 8;
        }
      } while (0 < (int)uVar11);
    }
    puVar29 = puVar29 + 1;
    iVar26 = iVar26 + image->number_channels * 4;
    number_pixels = CONCAT44(iVar26,pbVar31 + quantum_info->pad);
    if (puVar29 == q) {
      return;
    }
    pPVar8 = image->channel_map;
    fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);
    uVar25 = quantum_info->depth;
  } while (NAN(fVar42));
LAB_001650f0:
  if (fVar42 <= (float)uVar44) goto LAB_00165520;
  dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);
  dVar46 = (dVar46 * (double)fVar42) / dVar34;
  if (dVar46 < dVar33) {
    uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar35);
  }
  else {
    uVar51 = 0xffffffffffffffff;
  }
  goto LAB_00165130;
}



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

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  byte bVar6;
  undefined2 uVar5;
  int iVar7;
  int extraout_v1;
  int extraout_v1_00;
  int extraout_v1_01;
  uint uVar8;
  uint extraout_v1_02;
  uint extraout_v1_03;
  uint extraout_v1_04;
  uint uVar9;
  uint extraout_v1_05;
  uint extraout_v1_06;
  uint extraout_v1_07;
  uint extraout_v1_08;
  uint extraout_v1_09;
  byte bVar12;
  byte bVar13;
  uint uVar10;
  byte *pbVar11;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  byte bVar18;
  byte bVar19;
  byte bVar20;
  uint uVar21;
  int iVar22;
  uint uVar23;
  int iVar24;
  double dVar25;
  float fVar31;
  double dVar26;
  double dVar27;
  double dVar28;
  double dVar29;
  float fVar32;
  double dVar30;
  double extraout_f0_1;
  float fVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  undefined8 uVar36;
  double dVar37;
  double dVar38;
  double dVar39;
  double dVar40;
  double dVar41;
  double dVar42;
  undefined8 uVar43;
  int local_c0;
  uint local_b8;
  
  puVar4 = PTR_s_courses_003a88ec;
  puVar3 = PTR_s_t_to_left_003a88e4;
  puVar2 = PTR_LAB_003a88e0;
  if (param_7 == 0) {
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,
               PTR_s_courses_003a88ec + -0x75c0);
    return;
  }
  if (*(int *)(param_7 + 0x1c) != -0x54535255) {
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,
               PTR_s_courses_003a88ec + -0x75c0);
    return;
  }
  uVar21 = *param_2;
  if (uVar21 == 0x10) {
    if (param_2[2] == 1) {
      if (param_4 < 1) {
        return;
      }
      iVar22 = 0;
      uVar21 = 1;
      iVar24 = 4;
      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);
      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);
      dVar26 = dVar25;
      dVar27 = dVar25;
      dVar28 = dVar25;
      do {
        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *
                 dVar25;
        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));
        bVar13 = (byte)((ushort)uVar5 >> 8);
        if (param_2[0x11] == uVar21) {
          *param_6 = (byte)uVar5;
          param_6[1] = bVar13;
        }
        else {
          *param_6 = bVar13;
          param_6[1] = (byte)uVar5;
        }
        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *
                 dVar27;
        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));
        bVar13 = (byte)((ushort)uVar5 >> 8);
        if (param_2[0x11] == uVar21) {
          param_6[2] = (byte)uVar5;
          param_6[3] = bVar13;
        }
        else {
          param_6[2] = bVar13;
          param_6[3] = (byte)uVar5;
        }
        param_6 = param_6 + 4;
        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;
        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);
        uVar5 = FUN_00155b60(uVar35);
        bVar13 = (byte)((ushort)uVar5 >> 8);
        if (param_2[0x11] == uVar21) {
          *param_6 = (byte)uVar5;
          param_6[1] = bVar13;
        }
        else {
          *param_6 = bVar13;
          param_6[1] = (byte)uVar5;
        }
        param_6 = param_6 + 2;
        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {
          dVar25 = (double)((float)uVar34 -
                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *
                   dVar28;
          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);
        }
        else {
          uVar35 = uVar35 & 0xffffffff00000000;
        }
        uVar5 = FUN_00155b60(uVar35);
        bVar13 = (byte)((ushort)uVar5 >> 8);
        if (param_2[0x11] == uVar21) {
          *param_6 = (byte)uVar5;
          param_6[1] = bVar13;
        }
        else {
          *param_6 = bVar13;
          param_6[1] = (byte)uVar5;
        }
        iVar22 = iVar22 + 1;
        param_6 = param_6 + param_2[10] + 2;
        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
        dVar25 = extraout_f0_1;
      } while (iVar22 != param_4);
      return;
    }
    if (param_4 < 1) {
      return;
    }
    iVar22 = 0;
    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
    do {
      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);
      if (fVar33 <= 0.0) {
        bVar17 = 0;
        bVar13 = 0;
        bVar12 = 0;
        bVar14 = 0;
        if (param_2[0x11] != 1) goto LAB_00165b70;
LAB_00165d84:
        *param_6 = bVar12;
        param_6[1] = bVar14;
      }
      else {
        if (fVar33 < fVar31) {
          dVar27 = (double)fVar33 + dVar26;
          if (dVar25 <= dVar27) {
            dVar27 = dVar27 - dVar25;
          }
          bVar13 = (byte)((uint)(int)dVar27 >> 8);
          bVar17 = (byte)(int)dVar27;
        }
        else {
          bVar17 = 0xff;
          bVar13 = 0xff;
        }
        bVar12 = bVar17;
        bVar14 = bVar13;
        if (param_2[0x11] == 1) goto LAB_00165d84;
LAB_00165b70:
        *param_6 = bVar13;
        param_6[1] = bVar17;
      }
      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);
      if (fVar33 <= 0.0) {
        bVar17 = 0;
        bVar13 = 0;
        bVar12 = 0;
        bVar14 = 0;
        if (param_2[0x11] != 1) goto LAB_00165be4;
LAB_00165d64:
        param_6[2] = bVar12;
        param_6[3] = bVar14;
      }
      else {
        if (fVar33 < fVar31) {
          dVar27 = (double)fVar33 + dVar26;
          if (dVar25 <= dVar27) {
            dVar27 = dVar27 - dVar25;
          }
          bVar13 = (byte)((uint)(int)dVar27 >> 8);
          bVar17 = (byte)(int)dVar27;
        }
        else {
          bVar17 = 0xff;
          bVar13 = 0xff;
        }
        bVar12 = bVar17;
        bVar14 = bVar13;
        if (param_2[0x11] == 1) goto LAB_00165d64;
LAB_00165be4:
        param_6[2] = bVar13;
        param_6[3] = bVar17;
      }
      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);
      if (fVar33 <= 0.0) {
        bVar17 = 0;
        bVar13 = 0;
        bVar12 = 0;
        bVar14 = 0;
        if (param_2[0x11] != 1) goto LAB_00165c5c;
LAB_00165d44:
        param_6[4] = bVar12;
        param_6[5] = bVar14;
      }
      else {
        if (fVar33 < fVar31) {
          dVar27 = (double)fVar33 + dVar26;
          if (dVar25 <= dVar27) {
            dVar27 = dVar27 - dVar25;
          }
          bVar13 = (byte)((uint)(int)dVar27 >> 8);
          bVar17 = (byte)(int)dVar27;
        }
        else {
          bVar17 = 0xff;
          bVar13 = 0xff;
        }
        bVar12 = bVar17;
        bVar14 = bVar13;
        if (param_2[0x11] == 1) goto LAB_00165d44;
LAB_00165c5c:
        param_6[4] = bVar13;
        param_6[5] = bVar17;
      }
      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||
         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),
         fVar33 <= 0.0)) {
        bVar13 = 0;
        bVar12 = 0;
LAB_00165c80:
        if (param_2[0x11] != 1) goto LAB_00165c8c;
LAB_00165d24:
        param_6[6] = bVar13;
        param_6[7] = bVar12;
      }
      else {
        if (fVar31 <= fVar33) {
          bVar13 = 0xff;
          bVar12 = 0xff;
          goto LAB_00165c80;
        }
        dVar27 = (double)fVar33 + dVar26;
        if (dVar27 < dVar25) {
          uVar5 = (undefined2)(int)dVar27;
        }
        else {
          uVar5 = (undefined2)(int)(dVar27 - dVar25);
        }
        bVar12 = (byte)((ushort)uVar5 >> 8);
        bVar13 = (byte)uVar5;
        if (param_2[0x11] == 1) goto LAB_00165d24;
LAB_00165c8c:
        param_6[6] = bVar12;
        param_6[7] = bVar13;
      }
      iVar22 = iVar22 + 1;
      param_6 = param_6 + param_2[10] + 8;
      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
      if (iVar22 == param_4) {
        return;
      }
    } while( true );
  }
  if (uVar21 < 0x11) {
    if (uVar21 == 8) {
      if (param_4 < 1) {
        return;
      }
      iVar22 = 0;
      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);
      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);
      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
      do {
        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);
        if (fVar33 <= 0.0) {
          bVar13 = 0;
        }
        else {
          dVar29 = (double)fVar33 / dVar26;
          if (dVar29 < dVar25) {
            dVar29 = dVar29 + dVar28;
            if (dVar29 < dVar27) {
              bVar13 = (byte)(int)dVar29;
            }
            else {
              bVar13 = (byte)(int)(dVar29 - dVar27);
            }
          }
          else {
            bVar13 = 0xff;
          }
        }
        *param_6 = bVar13;
        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);
        if (fVar33 <= 0.0) {
          bVar13 = 0;
        }
        else {
          dVar29 = (double)fVar33 / dVar26;
          if (dVar29 < dVar25) {
            dVar29 = dVar29 + dVar28;
            if (dVar29 < dVar27) {
              bVar13 = (byte)(int)dVar29;
            }
            else {
              bVar13 = (byte)(int)(dVar29 - dVar27);
            }
          }
          else {
            bVar13 = 0xff;
          }
        }
        param_6[1] = bVar13;
        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);
        if (fVar33 <= 0.0) {
          bVar13 = 0;
        }
        else {
          dVar29 = (double)fVar33 / dVar26;
          if (dVar29 < dVar25) {
            dVar29 = dVar29 + dVar28;
            if (dVar29 < dVar27) {
              bVar13 = (byte)(int)dVar29;
            }
            else {
              bVar13 = (byte)(int)(dVar29 - dVar27);
            }
          }
          else {
            bVar13 = 0xff;
          }
        }
        param_6[2] = bVar13;
        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||
           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),
           fVar33 <= 0.0)) {
          bVar13 = 0;
        }
        else {
          dVar29 = (double)fVar33 / dVar26;
          if (dVar29 < dVar25) {
            dVar29 = dVar29 + dVar28;
            if (dVar29 < *(double *)(puVar2 + 0x1410)) {
              bVar13 = (byte)(int)dVar29;
            }
            else {
              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));
            }
          }
          else {
            bVar13 = 0xff;
          }
        }
        param_6[3] = bVar13;
        iVar22 = iVar22 + 1;
        param_6 = param_6 + param_2[10] + 4;
        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
      } while (iVar22 != param_4);
      return;
    }
    if (uVar21 == 10) {
      if (param_2[0xc] == 0) {
        if (param_4 < 1) {
          return;
        }
        iVar22 = 0;
        uVar21 = 0;
        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);
        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);
        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);
        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
        do {
          iVar24 = 0;
          dVar40 = *(double *)(puVar4 + -0x7538);
          dVar42 = *(double *)(puVar2 + 0x1418);
          dVar38 = *(double *)(puVar2 + 0x1a58);
          dVar37 = *(double *)(puVar2 + 0x1a60);
          dVar41 = *(double *)(puVar2 + 0x1400);
          dVar39 = dVar42;
          do {
            iVar7 = *(int *)(param_1 + 0x2d0);
            if (iVar24 == 2) {
              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);
              if (fVar33 < (float)uVar34) {
                uVar8 = (uint)fVar33;
              }
              else {
                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;
              }
              dVar30 = (double)(int)uVar8;
              if ((int)uVar8 < 0) {
                dVar30 = dVar30 + dVar25;
              }
LAB_00164eec:
              fVar33 = (float)dVar30;
            }
            else {
              if (iVar24 != 3) {
                fVar33 = *(float *)(puVar3 + -0x51e0);
                if (iVar24 == 1) {
                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);
                  if (fVar32 < fVar33) {
                    uVar8 = (uint)fVar32;
                  }
                  else {
                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;
                  }
                  dVar30 = (double)(int)uVar8;
                  if ((int)uVar8 < 0) {
                    dVar30 = dVar30 + dVar42;
                  }
                }
                else {
                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);
                  if (fVar32 < fVar33) {
                    uVar8 = (uint)fVar32;
                  }
                  else {
                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;
                  }
                  dVar30 = (double)(int)uVar8;
                  if ((int)uVar8 < 0) {
                    dVar30 = dVar30 + dVar42;
                  }
                }
                goto LAB_00164eec;
              }
              fVar33 = 0.0;
              if (*(int *)(iVar7 + 0x34) == 4) {
                fVar32 = *(float *)(puVar3 + -0x51e0);
                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);
                if (fVar33 < fVar32) {
                  uVar8 = (uint)fVar33;
                }
                else {
                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;
                }
                dVar30 = (double)(int)uVar8;
                if ((int)uVar8 < 0) {
                  dVar30 = dVar30 + dVar39;
                }
                goto LAB_00164eec;
              }
            }
            uVar8 = (uint)(iVar24 + iVar22) % 3;
            if (uVar8 == 1) {
              if (0.0 < fVar33) {
                dVar30 = ((double)fVar33 * dVar26) / dVar27;
                if (dVar30 < dVar28) {
                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);
                  uVar21 = uVar21 | extraout_v1_01 << 0xc;
                }
                else {
                  uVar21 = 0xfffff000;
                }
              }
            }
            else if (uVar8 == 2) {
              if (0.0 < fVar33) {
                dVar30 = ((double)fVar33 * dVar40) / dVar38;
                if (dVar30 < dVar37) {
                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);
                  uVar21 = uVar21 | extraout_v1 << 2;
                }
                else {
                  uVar21 = 0xfffffffc;
                }
              }
              bVar13 = (byte)uVar21;
              bVar17 = (byte)(uVar21 >> 0x18);
              bVar14 = (byte)(uVar21 >> 0x10);
              bVar12 = (byte)(uVar21 >> 8);
              if (param_2[0x11] == 1) {
                *param_6 = bVar13;
                uVar21 = 0;
                param_6[1] = bVar12;
                param_6[2] = bVar14;
                param_6[3] = bVar17;
                param_6 = param_6 + 4;
              }
              else {
                uVar21 = 0;
                *param_6 = bVar17;
                param_6[1] = bVar14;
                param_6[2] = bVar12;
                param_6[3] = bVar13;
                param_6 = param_6 + 4;
              }
            }
            else if (0.0 < fVar33) {
              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /
                       *(double *)(puVar2 + 0x1a58);
              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {
                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));
                uVar21 = uVar21 | extraout_v1_00 << 0x16;
              }
              else {
                uVar21 = uVar21 | 0xffc00000;
              }
            }
            iVar24 = iVar24 + 1;
          } while (iVar24 != 4);
          iVar22 = iVar22 + 4;
          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
          param_6 = param_6 + param_2[10];
          if (iVar22 == param_4 << 2) {
            return;
          }
        } while( true );
      }
      if (param_2[1] == 0x20) {
        if (param_4 < 1) {
          return;
        }
        iVar22 = 0;
        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);
        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
        uVar21 = 10;
        dVar25 = dVar37;
        dVar26 = dVar38;
        dVar27 = dVar40;
        dVar28 = dVar41;
        dVar29 = dVar40;
        dVar39 = dVar38;
        while( true ) {
          iVar24 = *(int *)(param_1 + 0x2d0);
          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);
          if (NAN(fVar33)) {
            uVar8 = 0;
          }
          else {
            uVar8 = 0;
            if (0.0 < fVar33) {
              dVar42 = ((double)fVar33 * dVar27) / dVar26;
              if (dVar42 < dVar25) {
                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);
                uVar8 = extraout_v1_06;
              }
              else {
                uVar8 = 0xffffffff;
              }
            }
          }
          uVar23 = param_2[0x15];
          if (uVar23 == 0) {
            uVar23 = 0x20;
            param_2[0x15] = 0x20;
          }
          if (0 < (int)uVar21) {
            bVar1 = uVar23 < uVar21;
            uVar9 = uVar21;
            pbVar11 = param_6;
            do {
              uVar15 = uVar23;
              if (!bVar1) {
                uVar15 = uVar9;
              }
              uVar16 = uVar21 - uVar9;
              uVar10 = 0x20 - uVar23;
              uVar23 = uVar23 - uVar15;
              uVar9 = uVar9 - uVar15;
              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);
              param_2[0x15] = uVar23;
              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];
              param_2[0x14] = uVar15;
              param_6 = pbVar11;
              if (uVar23 == 0) {
                param_6 = pbVar11 + 4;
                bVar14 = (byte)(uVar15 >> 0x18);
                bVar12 = (byte)(uVar15 >> 0x10);
                bVar13 = (byte)(uVar15 >> 8);
                if (param_2[0x11] == 1) {
                  *pbVar11 = (byte)uVar15;
                  pbVar11[1] = bVar13;
                  pbVar11[2] = bVar12;
                  pbVar11[3] = bVar14;
                }
                else {
                  *pbVar11 = bVar14;
                  pbVar11[1] = bVar12;
                  pbVar11[2] = bVar13;
                  pbVar11[3] = (byte)uVar15;
                }
                uVar21 = *param_2;
                uVar23 = 0x20;
                param_2[0x14] = 0;
                param_2[0x15] = 0x20;
              }
              bVar1 = uVar23 < uVar9;
              pbVar11 = param_6;
            } while (0 < (int)uVar9);
            iVar24 = *(int *)(param_1 + 0x2d0);
          }
          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);
          if (fVar33 <= 0.0) {
            uVar8 = 0;
          }
          else {
            dVar42 = ((double)fVar33 * dVar29) / dVar39;
            if (dVar42 < dVar37) {
              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);
              uVar8 = extraout_v1_07;
            }
            else {
              uVar8 = 0xffffffff;
            }
          }
          bVar1 = uVar23 < uVar21;
          uVar9 = uVar21;
          pbVar11 = param_6;
          if (0 < (int)uVar21) {
            do {
              uVar15 = uVar23;
              if (!bVar1) {
                uVar15 = uVar9;
              }
              uVar10 = 0x20 - uVar23;
              uVar23 = uVar23 - uVar15;
              uVar16 = uVar9 - uVar15;
              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);
              param_2[0x15] = uVar23;
              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]
              ;
              param_2[0x14] = uVar9;
              pbVar11 = param_6;
              if (uVar23 == 0) {
                pbVar11 = param_6 + 4;
                bVar14 = (byte)(uVar9 >> 0x18);
                bVar12 = (byte)(uVar9 >> 0x10);
                bVar13 = (byte)(uVar9 >> 8);
                if (param_2[0x11] == 1) {
                  *param_6 = (byte)uVar9;
                  param_6[1] = bVar13;
                  param_6[2] = bVar12;
                  param_6[3] = bVar14;
                }
                else {
                  *param_6 = bVar14;
                  param_6[1] = bVar12;
                  param_6[2] = bVar13;
                  param_6[3] = (byte)uVar9;
                }
                uVar21 = *param_2;
                uVar23 = 0x20;
                param_2[0x14] = 0;
                param_2[0x15] = 0x20;
              }
              bVar1 = uVar23 < uVar16;
              uVar9 = uVar16;
              param_6 = pbVar11;
            } while (0 < (int)uVar16);
            iVar24 = *(int *)(param_1 + 0x2d0);
          }
          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);
          if (fVar33 <= 0.0) {
            uVar8 = 0;
          }
          else {
            dVar42 = ((double)fVar33 * dVar40) / dVar38;
            if (dVar42 < dVar37) {
              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);
              uVar8 = extraout_v1_08;
            }
            else {
              uVar8 = 0xffffffff;
            }
          }
          bVar1 = uVar23 < uVar21;
          uVar9 = uVar21;
          param_6 = pbVar11;
          if (0 < (int)uVar21) {
            do {
              uVar15 = uVar23;
              if (!bVar1) {
                uVar15 = uVar9;
              }
              uVar10 = 0x20 - uVar23;
              uVar23 = uVar23 - uVar15;
              uVar16 = uVar9 - uVar15;
              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);
              param_2[0x15] = uVar23;
              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]
              ;
              param_2[0x14] = uVar9;
              param_6 = pbVar11;
              if (uVar23 == 0) {
                param_6 = pbVar11 + 4;
                bVar14 = (byte)(uVar9 >> 0x18);
                bVar12 = (byte)(uVar9 >> 0x10);
                bVar13 = (byte)(uVar9 >> 8);
                if (param_2[0x11] == 1) {
                  *pbVar11 = (byte)uVar9;
                  pbVar11[1] = bVar13;
                  pbVar11[2] = bVar12;
                  pbVar11[3] = bVar14;
                }
                else {
                  *pbVar11 = bVar14;
                  pbVar11[1] = bVar12;
                  pbVar11[2] = bVar13;
                  pbVar11[3] = (byte)uVar9;
                }
                uVar21 = *param_2;
                uVar23 = 0x20;
                param_2[0x14] = 0;
                param_2[0x15] = 0x20;
              }
              bVar1 = uVar23 < uVar16;
              uVar9 = uVar16;
              pbVar11 = param_6;
            } while (0 < (int)uVar16);
            iVar24 = *(int *)(param_1 + 0x2d0);
          }
          if ((*(int *)(iVar24 + 0x34) != 4) ||
             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {
            uVar8 = 0;
          }
          else {
            dVar42 = ((double)fVar33 * dVar40) / dVar38;
            if (dVar42 < dVar37) {
              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));
              uVar8 = extraout_v1_09;
            }
            else {
              uVar8 = 0xffffffff;
            }
          }
          uVar23 = uVar21;
          pbVar11 = param_6;
          if (0 < (int)uVar21) {
            while( true ) {
              uVar15 = param_2[0x15];
              uVar9 = uVar15;
              if (uVar23 <= uVar15) {
                uVar9 = uVar23;
              }
              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);
              param_2[0x15] = uVar15 - uVar9;
              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |
                       param_2[0x14];
              param_2[0x14] = uVar21;
              param_6 = pbVar11;
              if (uVar15 - uVar9 == 0) {
                param_6 = pbVar11 + 4;
                bVar14 = (byte)(uVar21 >> 0x18);
                bVar12 = (byte)(uVar21 >> 0x10);
                bVar13 = (byte)(uVar21 >> 8);
                if (param_2[0x11] == 1) {
                  *pbVar11 = (byte)uVar21;
                  pbVar11[1] = bVar13;
                  pbVar11[2] = bVar12;
                  pbVar11[3] = bVar14;
                }
                else {
                  *pbVar11 = bVar14;
                  pbVar11[1] = bVar12;
                  pbVar11[2] = bVar13;
                  pbVar11[3] = (byte)uVar21;
                }
                param_2[0x14] = 0;
                param_2[0x15] = 0x20;
              }
              if ((int)(uVar23 - uVar9) < 1) break;
              uVar21 = *param_2;
              uVar23 = uVar23 - uVar9;
              pbVar11 = param_6;
            }
          }
          iVar22 = iVar22 + 1;
          param_6 = param_6 + param_2[10];
          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
          if (iVar22 == param_4) break;
          uVar21 = *param_2;
        }
        return;
      }
      if (param_4 < 1) {
        return;
      }
      iVar22 = 0;
      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);
      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
      uVar21 = 10;
      dVar25 = dVar37;
      dVar26 = dVar38;
      dVar27 = dVar40;
      dVar28 = dVar41;
      dVar29 = dVar40;
      dVar39 = dVar38;
      do {
        iVar24 = *(int *)(param_1 + 0x2d0);
        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);
        if (NAN(fVar33)) {
          uVar8 = 0;
        }
        else {
          uVar8 = 0;
          if (0.0 < fVar33) {
            dVar42 = ((double)fVar33 * dVar27) / dVar26;
            if (dVar42 < dVar25) {
              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);
              uVar8 = extraout_v1_02;
            }
            else {
              uVar8 = 0xffffffff;
            }
          }
        }
        uVar23 = param_2[0x15];
        if (uVar23 == 0) {
          uVar23 = 8;
          param_2[0x15] = 8;
        }
        if ((int)uVar21 < 1) {
          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);
          if (!NAN(fVar33)) goto LAB_00166458;
          uVar8 = 0;
        }
        else {
          do {
            while( true ) {
              uVar9 = uVar23;
              if (uVar21 <= uVar23) {
                uVar9 = uVar21;
              }
              uVar15 = uVar21 - uVar9;
              uVar21 = uVar15;
              if ((int)uVar15 < 0) {
                uVar21 = 0;
              }
              if (uVar23 == 8) {
                *param_6 = 0;
              }
              uVar10 = uVar8 >> (uVar21 & 0x1f);
              if ((uVar21 & 0x20) != 0) {
                uVar10 = 0;
              }
              uVar23 = uVar23 - uVar9;
              param_2[0x15] = uVar23;
              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));
              if ((uVar23 & 0x20) != 0) {
                bVar13 = 0;
              }
              *param_6 = bVar13 | *param_6;
              if (uVar23 != 0) break;
              param_6 = param_6 + 1;
              param_2[0x15] = 8;
              uVar23 = 8;
              if ((int)uVar15 < 1) goto LAB_00166434;
            }
            uVar23 = param_2[0x15];
          } while (0 < (int)uVar15);
LAB_00166434:
          iVar24 = *(int *)(param_1 + 0x2d0);
          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);
          uVar21 = *param_2;
          if (NAN(fVar33)) {
LAB_00166cbc:
            uVar8 = 0;
          }
          else {
LAB_00166458:
            if (fVar33 <= 0.0) goto LAB_00166cbc;
            dVar42 = ((double)fVar33 * dVar29) / dVar39;
            if (dVar42 < dVar37) {
              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);
              uVar8 = extraout_v1_03;
            }
            else {
              uVar8 = 0xffffffff;
            }
          }
          if (uVar23 == 0) {
            uVar23 = 8;
            param_2[0x15] = 8;
          }
        }
        if ((int)uVar21 < 1) {
          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);
          if (!NAN(fVar33)) goto LAB_00166550;
          uVar8 = 0;
        }
        else {
          do {
            while( true ) {
              uVar9 = uVar23;
              if (uVar21 <= uVar23) {
                uVar9 = uVar21;
              }
              uVar15 = uVar21 - uVar9;
              uVar21 = uVar15;
              if ((int)uVar15 < 0) {
                uVar21 = 0;
              }
              if (uVar23 == 8) {
                *param_6 = 0;
              }
              uVar10 = uVar8 >> (uVar21 & 0x1f);
              if ((uVar21 & 0x20) != 0) {
                uVar10 = 0;
              }
              uVar23 = uVar23 - uVar9;
              param_2[0x15] = uVar23;
              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));
              if ((uVar23 & 0x20) != 0) {
                bVar13 = 0;
              }
              *param_6 = bVar13 | *param_6;
              if (uVar23 != 0) break;
              param_6 = param_6 + 1;
              param_2[0x15] = 8;
              uVar23 = 8;
              if ((int)uVar15 < 1) goto LAB_0016652c;
            }
            uVar23 = param_2[0x15];
          } while (0 < (int)uVar15);
LAB_0016652c:
          iVar24 = *(int *)(param_1 + 0x2d0);
          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);
          uVar21 = *param_2;
          if (NAN(fVar33)) {
LAB_00166cb4:
            uVar8 = 0;
          }
          else {
LAB_00166550:
            if (fVar33 <= 0.0) goto LAB_00166cb4;
            dVar42 = ((double)fVar33 * dVar40) / dVar38;
            if (dVar42 < dVar37) {
              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);
              uVar8 = extraout_v1_04;
            }
            else {
              uVar8 = 0xffffffff;
            }
          }
          if (uVar23 == 0) {
            uVar23 = 8;
            param_2[0x15] = 8;
          }
        }
        if ((int)uVar21 < 1) {
          uVar9 = 0;
          uVar8 = uVar21;
          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;
        }
        else {
          do {
            while( true ) {
              uVar9 = uVar23;
              if (uVar21 <= uVar23) {
                uVar9 = uVar21;
              }
              uVar15 = uVar21 - uVar9;
              uVar21 = uVar15;
              if ((int)uVar15 < 0) {
                uVar21 = 0;
              }
              if (uVar23 == 8) {
                *param_6 = 0;
              }
              uVar10 = uVar8 >> (uVar21 & 0x1f);
              if ((uVar21 & 0x20) != 0) {
                uVar10 = 0;
              }
              uVar23 = uVar23 - uVar9;
              param_2[0x15] = uVar23;
              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));
              if ((uVar23 & 0x20) != 0) {
                bVar13 = 0;
              }
              *param_6 = bVar13 | *param_6;
              if (uVar23 != 0) break;
              param_6 = param_6 + 1;
              param_2[0x15] = 8;
              uVar23 = 8;
              if ((int)uVar15 < 1) goto LAB_0016662c;
            }
            uVar23 = param_2[0x15];
          } while (0 < (int)uVar15);
LAB_0016662c:
          iVar24 = *(int *)(param_1 + 0x2d0);
          uVar21 = *param_2;
          if (*(int *)(iVar24 + 0x34) == 4) {
LAB_00166c44:
            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);
            if (fVar33 <= 0.0) goto LAB_00166640;
            dVar42 = ((double)fVar33 * dVar40) / dVar38;
            if (dVar42 < dVar37) {
              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));
              uVar9 = extraout_v1_05;
            }
            else {
              uVar9 = 0xffffffff;
            }
          }
          else {
LAB_00166640:
            uVar9 = 0;
          }
          uVar8 = uVar21;
          if (uVar23 == 0) {
            param_2[0x15] = 8;
          }
        }
        while (0 < (int)uVar8) {
          uVar15 = param_2[0x15];
          uVar23 = uVar15;
          if (uVar21 <= uVar15) {
            uVar23 = uVar21;
          }
          uVar8 = uVar21 - uVar23;
          uVar21 = uVar8;
          if ((int)uVar8 < 0) {
            uVar21 = 0;
          }
          if (uVar15 == 8) {
            *param_6 = 0;
          }
          uVar10 = uVar9 >> (uVar21 & 0x1f);
          if ((uVar21 & 0x20) != 0) {
            uVar10 = 0;
          }
          uVar15 = uVar15 - uVar23;
          param_2[0x15] = uVar15;
          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));
          if ((uVar15 & 0x20) != 0) {
            bVar13 = 0;
          }
          *param_6 = bVar13 | *param_6;
          if (uVar15 == 0) {
            param_6 = param_6 + 1;
            param_2[0x15] = 8;
          }
        }
        iVar22 = iVar22 + 1;
        param_6 = param_6 + param_2[10];
        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
        if (iVar22 == param_4) {
          return;
        }
        uVar21 = *param_2;
      } while( true );
    }
LAB_00165538:
    if (uVar21 == 0) {
      local_c0 = 0;
      local_b8 = 0;
      goto LAB_0016507c;
    }
  }
  else {
    if (uVar21 == 0x20) {
      if (param_2[2] == 1) {
        if (param_4 < 1) {
          return;
        }
        iVar22 = 0;
        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
        do {
          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)
                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));
          bVar14 = (byte)((uint)fVar33 >> 8);
          bVar12 = (byte)((uint)fVar33 >> 0x10);
          bVar13 = (byte)((uint)fVar33 >> 0x18);
          if (param_2[0x11] == 1) {
            *param_6 = bVar13;
            param_6[1] = bVar12;
            param_6[2] = bVar14;
            param_6[3] = SUB41(fVar33,0);
          }
          else {
            *param_6 = SUB41(fVar33,0);
            param_6[1] = bVar14;
            param_6[2] = bVar12;
            param_6[3] = bVar13;
          }
          fVar33 = (float)((double)*(float *)(param_5 +
                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *
                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));
          bVar14 = (byte)((uint)fVar33 >> 8);
          bVar12 = (byte)((uint)fVar33 >> 0x10);
          bVar13 = (byte)((uint)fVar33 >> 0x18);
          if (param_2[0x11] == 1) {
            param_6[4] = bVar13;
            param_6[5] = bVar12;
            param_6[6] = bVar14;
            param_6[7] = SUB41(fVar33,0);
          }
          else {
            param_6[4] = SUB41(fVar33,0);
            param_6[5] = bVar14;
            param_6[6] = bVar12;
            param_6[7] = bVar13;
          }
          fVar33 = (float)((double)*(float *)(param_5 +
                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *
                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));
          bVar14 = (byte)((uint)fVar33 >> 8);
          bVar12 = (byte)((uint)fVar33 >> 0x10);
          bVar13 = (byte)((uint)fVar33 >> 0x18);
          if (param_2[0x11] == 1) {
            param_6[8] = bVar13;
            param_6[9] = bVar12;
            param_6[10] = bVar14;
            param_6[0xb] = SUB41(fVar33,0);
          }
          else {
            param_6[8] = SUB41(fVar33,0);
            param_6[9] = bVar14;
            param_6[10] = bVar12;
            param_6[0xb] = bVar13;
          }
          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {
            dVar25 = (double)(fVar31 - *(float *)(param_5 +
                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));
          }
          else {
            dVar25 = 0.0;
          }
          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));
          bVar14 = (byte)((uint)fVar33 >> 8);
          bVar12 = (byte)((uint)fVar33 >> 0x10);
          bVar13 = (byte)((uint)fVar33 >> 0x18);
          if (param_2[0x11] == 1) {
            param_6[0xc] = bVar13;
            param_6[0xd] = bVar12;
            param_6[0xe] = bVar14;
            param_6[0xf] = SUB41(fVar33,0);
          }
          else {
            param_6[0xc] = SUB41(fVar33,0);
            param_6[0xd] = bVar14;
            param_6[0xe] = bVar12;
            param_6[0xf] = bVar13;
          }
          iVar22 = iVar22 + 1;
          param_6 = param_6 + param_2[10] + 0x10;
          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
        } while (iVar22 != param_4);
        return;
      }
      if (param_4 < 1) {
        return;
      }
      iVar22 = 0;
      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);
      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);
      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
      do {
        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);
        if (fVar33 <= 0.0) {
          bVar6 = 0;
          bVar12 = 0;
          bVar13 = 0;
          bVar19 = 0;
          bVar14 = 0;
          bVar17 = 0;
          bVar18 = 0;
          bVar20 = 0;
          if (param_2[0x11] != 1) goto LAB_00165ecc;
LAB_001660ec:
          *param_6 = bVar14;
          param_6[1] = bVar17;
          param_6[2] = bVar18;
          param_6[3] = bVar20;
        }
        else {
          dVar29 = (double)fVar33 * dVar26;
          bVar12 = 0xff;
          if (dVar29 < dVar25) {
            dVar29 = dVar29 + dVar28;
            if (dVar29 < dVar27) {
              uVar21 = (uint)dVar29;
            }
            else {
              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;
            }
            bVar19 = (byte)(uVar21 >> 0x18);
            bVar13 = (byte)(uVar21 >> 0x10);
            bVar12 = (byte)(uVar21 >> 8);
            bVar6 = (byte)uVar21;
          }
          else {
            bVar6 = 0xff;
            bVar13 = 0xff;
            bVar19 = 0xff;
          }
          bVar14 = bVar6;
          bVar17 = bVar12;
          bVar18 = bVar13;
          bVar20 = bVar19;
          if (param_2[0x11] == 1) goto LAB_001660ec;
LAB_00165ecc:
          *param_6 = bVar19;
          param_6[1] = bVar13;
          param_6[2] = bVar12;
          param_6[3] = bVar6;
        }
        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);
        if (fVar33 <= 0.0) {
          bVar6 = 0;
          bVar12 = 0;
          bVar13 = 0;
          bVar19 = 0;
          bVar14 = 0;
          bVar17 = 0;
          bVar18 = 0;
          bVar20 = 0;
          if (param_2[0x11] != 1) goto LAB_00165f54;
LAB_0016611c:
          param_6[4] = bVar14;
          param_6[5] = bVar17;
          param_6[6] = bVar18;
          param_6[7] = bVar20;
        }
        else {
          dVar29 = (double)fVar33 * dVar26;
          bVar12 = 0xff;
          if (dVar29 < dVar25) {
            dVar29 = dVar29 + dVar28;
            if (dVar29 < dVar27) {
              uVar21 = (uint)dVar29;
            }
            else {
              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;
            }
            bVar19 = (byte)(uVar21 >> 0x18);
            bVar13 = (byte)(uVar21 >> 0x10);
            bVar12 = (byte)(uVar21 >> 8);
            bVar6 = (byte)uVar21;
          }
          else {
            bVar6 = 0xff;
            bVar13 = 0xff;
            bVar19 = 0xff;
          }
          bVar14 = bVar6;
          bVar17 = bVar12;
          bVar18 = bVar13;
          bVar20 = bVar19;
          if (param_2[0x11] == 1) goto LAB_0016611c;
LAB_00165f54:
          param_6[4] = bVar19;
          param_6[5] = bVar13;
          param_6[6] = bVar12;
          param_6[7] = bVar6;
        }
        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);
        if (fVar33 <= 0.0) {
          bVar6 = 0;
          bVar12 = 0;
          bVar13 = 0;
          bVar19 = 0;
          bVar14 = 0;
          bVar17 = 0;
          bVar18 = 0;
          bVar20 = 0;
          if (param_2[0x11] != 1) goto LAB_00165fe8;
LAB_001660b8:
          param_6[8] = bVar14;
          param_6[9] = bVar17;
          param_6[10] = bVar18;
          param_6[0xb] = bVar20;
        }
        else {
          dVar29 = (double)fVar33 * dVar26;
          bVar12 = 0xff;
          if (dVar29 < dVar25) {
            dVar29 = dVar29 + dVar28;
            if (dVar29 < dVar27) {
              uVar21 = (uint)dVar29;
            }
            else {
              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;
            }
            bVar19 = (byte)(uVar21 >> 0x18);
            bVar13 = (byte)(uVar21 >> 0x10);
            bVar12 = (byte)(uVar21 >> 8);
            bVar6 = (byte)uVar21;
          }
          else {
            bVar6 = 0xff;
            bVar13 = 0xff;
            bVar19 = 0xff;
          }
          bVar14 = bVar6;
          bVar17 = bVar12;
          bVar18 = bVar13;
          bVar20 = bVar19;
          if (param_2[0x11] == 1) goto LAB_001660b8;
LAB_00165fe8:
          param_6[8] = bVar19;
          param_6[9] = bVar13;
          param_6[10] = bVar12;
          param_6[0xb] = bVar6;
        }
        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||
           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),
           fVar33 <= 0.0)) {
          bVar14 = 0;
          bVar12 = 0;
          bVar13 = 0;
          bVar17 = 0;
LAB_00165e14:
          if (param_2[0x11] != 1) goto LAB_00165e24;
LAB_00166084:
          param_6[0xc] = bVar14;
          param_6[0xd] = bVar12;
          param_6[0xe] = bVar13;
          param_6[0xf] = bVar17;
        }
        else {
          dVar29 = (double)fVar33 * dVar26;
          if (dVar25 <= dVar29) {
            bVar14 = 0xff;
            bVar12 = 0xff;
            bVar13 = 0xff;
            bVar17 = 0xff;
            goto LAB_00165e14;
          }
          dVar29 = dVar29 + dVar28;
          if (dVar29 < *(double *)(puVar2 + 0x1410)) {
            uVar21 = (uint)dVar29;
          }
          else {
            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;
          }
          bVar17 = (byte)(uVar21 >> 0x18);
          bVar13 = (byte)(uVar21 >> 0x10);
          bVar12 = (byte)(uVar21 >> 8);
          bVar14 = (byte)uVar21;
          if (param_2[0x11] == 1) goto LAB_00166084;
LAB_00165e24:
          param_6[0xc] = bVar17;
          param_6[0xd] = bVar13;
          param_6[0xe] = bVar12;
          param_6[0xf] = bVar14;
        }
        iVar22 = iVar22 + 1;
        param_6 = param_6 + param_2[10] + 0x10;
        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
        if (iVar22 == param_4) {
          return;
        }
      } while( true );
    }
    if (uVar21 != 0x40) goto LAB_00165538;
    if (param_2[2] == 1) {
      if (param_4 < 1) {
        return;
      }
      iVar22 = 0;
      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
      do {
        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *
                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);
        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);
        bVar6 = (byte)((ulonglong)dVar25 >> 8);
        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);
        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);
        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);
        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);
        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);
        if (param_2[0x11] == 1) {
          *param_6 = bVar12;
          param_6[1] = bVar17;
          param_6[2] = bVar18;
          param_6[3] = bVar13;
          param_6[4] = bVar14;
          param_6[5] = bVar20;
          param_6[6] = bVar6;
          param_6[7] = SUB81(dVar25,0);
        }
        else {
          *param_6 = SUB81(dVar25,0);
          param_6[1] = bVar6;
          param_6[2] = bVar20;
          param_6[3] = bVar14;
          param_6[4] = bVar13;
          param_6[5] = bVar18;
          param_6[6] = bVar17;
          param_6[7] = bVar12;
        }
        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *
                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);
        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);
        bVar6 = (byte)((ulonglong)dVar25 >> 8);
        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);
        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);
        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);
        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);
        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);
        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);
        if (param_2[0x11] == 1) {
          param_6[8] = bVar13;
          param_6[9] = bVar14;
          param_6[10] = bVar17;
          param_6[0xb] = bVar18;
          param_6[0xc] = bVar12;
          param_6[0xd] = bVar20;
          param_6[0xe] = bVar6;
          param_6[0xf] = bVar19;
        }
        else {
          param_6[8] = bVar19;
          param_6[9] = bVar6;
          param_6[10] = bVar20;
          param_6[0xb] = bVar12;
          param_6[0xc] = bVar18;
          param_6[0xd] = bVar17;
          param_6[0xe] = bVar14;
          param_6[0xf] = bVar13;
        }
        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *
                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);
        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);
        bVar6 = (byte)((ulonglong)dVar25 >> 8);
        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);
        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);
        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);
        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);
        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);
        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);
        if (param_2[0x11] == 1) {
          param_6[0x10] = bVar13;
          param_6[0x11] = bVar14;
          param_6[0x12] = bVar17;
          param_6[0x13] = bVar18;
          param_6[0x14] = bVar12;
          param_6[0x15] = bVar20;
          param_6[0x16] = bVar6;
          param_6[0x17] = bVar19;
        }
        else {
          param_6[0x10] = bVar19;
          param_6[0x11] = bVar6;
          param_6[0x12] = bVar20;
          param_6[0x13] = bVar12;
          param_6[0x14] = bVar18;
          param_6[0x15] = bVar17;
          param_6[0x16] = bVar14;
          param_6[0x17] = bVar13;
        }
        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {
          dVar25 = (double)(fVar31 - *(float *)(param_5 +
                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));
        }
        else {
          dVar25 = 0.0;
        }
        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);
        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);
        bVar6 = (byte)((ulonglong)dVar25 >> 8);
        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);
        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);
        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);
        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);
        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);
        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);
        if (param_2[0x11] == 1) {
          param_6[0x18] = bVar13;
          param_6[0x19] = bVar14;
          param_6[0x1a] = bVar17;
          param_6[0x1b] = bVar18;
          param_6[0x1c] = bVar12;
          param_6[0x1d] = bVar20;
          param_6[0x1e] = bVar6;
          param_6[0x1f] = bVar19;
        }
        else {
          param_6[0x18] = bVar19;
          param_6[0x19] = bVar6;
          param_6[0x1a] = bVar20;
          param_6[0x1b] = bVar12;
          param_6[0x1c] = bVar18;
          param_6[0x1d] = bVar17;
          param_6[0x1e] = bVar14;
          param_6[0x1f] = bVar13;
        }
        iVar22 = iVar22 + 1;
        param_6 = param_6 + param_2[10] + 0x20;
        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
      } while (iVar22 != param_4);
      return;
    }
  }
  uVar8 = 0;
  if (uVar21 < 0x41) {
    uVar8 = uVar21;
  }
  uVar8 = uVar8 - 1;
  uVar15 = 2 << (uVar8 & 0x1f);
  uVar9 = uVar15;
  uVar23 = 1 >> (~uVar8 & 0x1f);
  if ((uVar8 & 0x20) != 0) {
    uVar9 = 0;
    uVar23 = uVar15;
  }
  local_b8 = uVar9 - 1;
  local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1);
LAB_0016507c:
  if (param_4 < 1) {
    return;
  }
  uVar36 = 0;
  iVar24 = *(int *)(param_1 + 0x2d0);
  iVar22 = 0;
  dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
  dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
  dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
  fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
  fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);
  dVar25 = dVar29;
  dVar26 = dVar39;
  dVar27 = dVar37;
  dVar28 = dVar29;
  if (!NAN(fVar33)) goto LAB_001650f0;
LAB_00165520:
  do {
    uVar43 = 0;
LAB_00165130:
    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);
    uVar23 = param_2[0x15];
    if (uVar23 == 0) {
      uVar23 = 8;
      param_2[0x15] = 8;
    }
    if ((int)uVar21 < 1) {
      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);
      if (!NAN(fVar33)) goto LAB_00165204;
      uVar43 = 0;
    }
    else {
      do {
        while( true ) {
          uVar9 = uVar23;
          if (uVar21 <= uVar23) {
            uVar9 = uVar21;
          }
          uVar15 = uVar21 - uVar9;
          uVar21 = uVar15;
          if ((int)uVar15 < 0) {
            uVar21 = 0;
          }
          if (uVar23 == 8) {
            *param_6 = 0;
          }
          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);
          if ((uVar21 & 0x20) != 0) {
            uVar10 = uVar8 >> (uVar21 & 0x1f);
          }
          uVar23 = uVar23 - uVar9;
          param_2[0x15] = uVar23;
          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));
          if ((uVar23 & 0x20) != 0) {
            bVar13 = 0;
          }
          *param_6 = bVar13 | *param_6;
          if (uVar23 != 0) break;
          param_6 = param_6 + 1;
          param_2[0x15] = 8;
          uVar23 = 8;
          if ((int)uVar15 < 1) goto LAB_001651e4;
        }
        uVar23 = param_2[0x15];
      } while (0 < (int)uVar15);
LAB_001651e4:
      iVar24 = *(int *)(param_1 + 0x2d0);
      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);
      uVar21 = *param_2;
      if (NAN(fVar33)) {
LAB_001655cc:
        uVar43 = 0;
      }
      else {
LAB_00165204:
        if (fVar33 <= (float)uVar36) goto LAB_001655cc;
        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);
        dVar38 = (dVar38 * (double)fVar33) / dVar39;
        if (dVar38 < dVar28) {
          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);
        }
        else {
          uVar43 = 0xffffffffffffffff;
        }
      }
      if (uVar23 == 0) {
        uVar23 = 8;
        param_2[0x15] = 8;
      }
    }
    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);
    if ((int)uVar21 < 1) {
      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);
      if (!NAN(fVar33)) goto LAB_0016531c;
      uVar43 = 0;
    }
    else {
      do {
        while( true ) {
          uVar9 = uVar23;
          if (uVar21 <= uVar23) {
            uVar9 = uVar21;
          }
          uVar15 = uVar21 - uVar9;
          uVar21 = uVar15;
          if ((int)uVar15 < 0) {
            uVar21 = 0;
          }
          if (uVar23 == 8) {
            *param_6 = 0;
          }
          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);
          if ((uVar21 & 0x20) != 0) {
            uVar10 = uVar8 >> (uVar21 & 0x1f);
          }
          uVar23 = uVar23 - uVar9;
          param_2[0x15] = uVar23;
          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));
          if ((uVar23 & 0x20) != 0) {
            bVar13 = 0;
          }
          *param_6 = bVar13 | *param_6;
          if (uVar23 != 0) break;
          param_6 = param_6 + 1;
          param_2[0x15] = 8;
          uVar23 = 8;
          if ((int)uVar15 < 1) goto LAB_001652fc;
        }
        uVar23 = param_2[0x15];
      } while (0 < (int)uVar15);
LAB_001652fc:
      iVar24 = *(int *)(param_1 + 0x2d0);
      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);
      uVar21 = *param_2;
      if (NAN(fVar33)) {
LAB_001655c0:
        uVar43 = 0;
      }
      else {
LAB_0016531c:
        if (fVar33 <= (float)uVar36) goto LAB_001655c0;
        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);
        dVar38 = (dVar38 * (double)fVar33) / dVar39;
        if (dVar38 < dVar29) {
          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);
        }
        else {
          uVar43 = 0xffffffffffffffff;
        }
      }
      if (uVar23 == 0) {
        uVar23 = 8;
        param_2[0x15] = 8;
      }
    }
    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);
    if ((int)uVar21 < 1) {
      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;
      uVar43 = 0;
    }
    else {
      do {
        while( true ) {
          uVar9 = uVar23;
          if (uVar21 <= uVar23) {
            uVar9 = uVar21;
          }
          uVar15 = uVar21 - uVar9;
          uVar21 = uVar15;
          if ((int)uVar15 < 0) {
            uVar21 = 0;
          }
          if (uVar23 == 8) {
            *param_6 = 0;
          }
          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);
          if ((uVar21 & 0x20) != 0) {
            uVar10 = uVar8 >> (uVar21 & 0x1f);
          }
          uVar23 = uVar23 - uVar9;
          param_2[0x15] = uVar23;
          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));
          if ((uVar23 & 0x20) != 0) {
            bVar13 = 0;
          }
          *param_6 = bVar13 | *param_6;
          if (uVar23 != 0) break;
          param_6 = param_6 + 1;
          param_2[0x15] = 8;
          uVar23 = 8;
          if ((int)uVar15 < 1) goto LAB_00165418;
        }
        uVar23 = param_2[0x15];
      } while (0 < (int)uVar15);
LAB_00165418:
      iVar24 = *(int *)(param_1 + 0x2d0);
      uVar21 = *param_2;
      if (*(int *)(iVar24 + 0x34) == 4) {
LAB_0016554c:
        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);
        if (fVar33 <= (float)uVar36) goto LAB_00165430;
        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);
        dVar38 = (dVar38 * (double)fVar33) / dVar39;
        if (dVar38 < dVar29) {
          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);
        }
        else {
          uVar43 = 0xffffffffffffffff;
        }
      }
      else {
LAB_00165430:
        uVar43 = 0;
      }
      if (uVar23 == 0) {
        param_2[0x15] = 8;
      }
    }
    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);
    if (0 < (int)uVar21) {
      do {
        uVar9 = param_2[0x15];
        uVar23 = uVar9;
        if (uVar21 <= uVar9) {
          uVar23 = uVar21;
        }
        uVar15 = uVar21 - uVar23;
        uVar21 = uVar15;
        if ((int)uVar15 < 0) {
          uVar21 = 0;
        }
        if (uVar9 == 8) {
          *param_6 = 0;
        }
        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);
        if ((uVar21 & 0x20) != 0) {
          uVar10 = uVar8 >> (uVar21 & 0x1f);
        }
        uVar9 = uVar9 - uVar23;
        param_2[0x15] = uVar9;
        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));
        if ((uVar9 & 0x20) != 0) {
          bVar13 = 0;
        }
        *param_6 = bVar13 | *param_6;
        if (uVar9 == 0) {
          param_6 = param_6 + 1;
          param_2[0x15] = 8;
        }
      } while (0 < (int)uVar15);
    }
    iVar22 = iVar22 + 1;
    param_6 = param_6 + param_2[10];
    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
    if (iVar22 == param_4) {
      return;
    }
    iVar24 = *(int *)(param_1 + 0x2d0);
    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);
    uVar21 = *param_2;
  } while (NAN(fVar33));
LAB_001650f0:
  if (fVar33 <= (float)uVar36) goto LAB_00165520;
  dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);
  dVar38 = (dVar38 * (double)fVar33) / dVar26;
  if (dVar38 < dVar25) {
    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);
  }
  else {
    uVar43 = 0xffffffffffffffff;
  }
  goto LAB_00165130;
}


lui gp,0x25
addiu gp,gp,-0x4490
addu gp,gp,t9
addiu sp,sp,-0xd8
sdc1 f30,0xd0(sp)
lw v0,0xf0(sp)
sw gp,0x10(sp)
sw s8,0xa0(sp)
sw s6,0x98(sp)
sw ra,0xa4(sp)
sw s7,0x9c(sp)
sw s5,0x94(sp)
sw s4,0x90(sp)
sw s3,0x8c(sp)
sw s2,0x88(sp)
sw s1,0x84(sp)
sw s0,0x80(sp)
sdc1 f28,0xc8(sp)
lw s8,0xe8(sp)
sdc1 f26,0xc0(sp)
lw s6,0xec(sp)
sdc1 f24,0xb8(sp)
sdc1 f22,0xb0(sp)
beq v0,zero,0x00167414
_sdc1 f20,0xa8(sp)
lw v1,0x1c(v0)
lui v0,0xabac
ori v0,v0,0xadab
bne v1,v0,0x001673f0
_li v0,0x10
lw s0,0x0(a1)
or s2,a0,zero
or s7,a1,zero
beq s0,v0,0x00165aa0
_or s4,a3,zero
sltiu v0,s0,0x11
beq v0,zero,0x00165018
_li v0,0x8
beq s0,v0,0x001657e8
_li v0,0xa
bne s0,v0,0x00165538
_nop
lw v0,0x30(a1)
bne v0,zero,0x001662cc
_nop
blez a3,0x00164fd0
_sll v0,a3,0x2
lw s3,-0x7fc4(gp)
lw v1,-0x7fd0(gp)
or s1,zero,zero
sw v0,0x40(sp)
or s5,zero,zero
lw v0,-0x7fd0(gp)
lw a0,-0x7fd0(gp)
lw a1,-0x7fd0(gp)
ldc1 f0,0x1418(v0)
sw v0,0x48(sp)
lw v0,-0x7fd0(gp)
lw s0,-0x7fcc(gp)
sw v1,0x18(sp)
sw a0,0x20(sp)
lwc1 f20,-0x51e0(s0)
sw a1,0x28(sp)
sdc1 f0,0x70(sp)
lwc1 f0,0x1a50(v0)
swc1 f0,0x7c(sp)
ldc1 f0,-0x7538(s3)
sdc1 f0,0x50(sp)
ldc1 f0,0x1a58(v1)
sdc1 f0,0x58(sp)
ldc1 f0,0x1a60(a0)
sdc1 f0,0x60(sp)
ldc1 f0,0x1400(a1)
sdc1 f0,0x68(sp)
lw v0,0x48(sp)
or s4,zero,zero
ldc1 f26,-0x7538(s3)
ldc1 f30,0x1418(v0)
lw v0,0x18(sp)
ldc1 f24,0x1a58(v0)
lw v0,0x20(sp)
ldc1 f22,0x1a60(v0)
lw v0,0x28(sp)
sdc1 f30,0x30(sp)
ldc1 f28,0x1400(v0)
sdc1 f30,0x38(sp)
li a0,0x2
lw v1,0x2d0(s2)
beq s4,a0,0x001656e0
_addu v0,s4,s1
li a0,0x3
beq s4,a0,0x0016568c
_li a0,0x1
beq s4,a0,0x001656a4
_lwc1 f2,-0x51e0(s0)
lw a0,0x8(v1)
sll a0,a0,0x2
addu a0,s8,a0
lwc1 f0,0x0(a0)
c.le.S f2,f0
bc1t 0x001657c0
_lui a0,0x8000
trunc.w.S f0,f0
mfc1 v1,f0
mtc1 v1,f0
bltz v1,0x0016552c
_cvt.d.W f0,f0
cvt.s.D f0,f0
lui v1,0xaaaa
li a1,0x1
ori v1,v1,0xaaab
multu v0,v1
mfhi v1
srl v1,v1,0x1
sll a0,v1,0x1
addu v1,a0,v1
subu v0,v0,v1
beq v0,a1,0x00165634
_li v1,0x2
bne v0,v1,0x001655d8
_c.un.S f0,f0
c.un.S f0,f0
bc1t 0x2,0x00164f68
_mtc1 zero,f2
c.le.S f0,f2
bc1t 0x3,0x00164f68
_nop
cvt.d.S f12,f0
mul.D f12,f12,f26
div.D f12,f12,f24
c.le.D f22,f12
bc1t 0x4,0x001662b4
_lw t9,-0x7f5c(gp)
jalr t9
_add.D f12,f12,f28
sll v0,v1,0x2
lw gp,0x10(sp)
or s5,s5,v0
lw t3,0x44(s7)
li t2,0x1
andi v1,s5,0xff
addiu v0,s6,0x4
ext a0,s5,0x8,0x8
ext a1,s5,0x10,0x8
beq t3,t2,0x0016628c
_srl t1,s5,0x18
or s5,zero,zero
sb t1,0x0(s6)
sb a1,0x1(s6)
sb a0,0x2(s6)
sb v1,0x3(s6)
or s6,v0,zero
addiu s4,s4,0x1
li v0,0x4
bne s4,v0,0x00164e9c
_li a0,0x2
lw v0,0x2c0(s2)
addiu s1,s1,0x4
lw v1,0x28(s7)
sll v0,v0,0x2
addu s8,s8,v0
lw v0,0x40(sp)
bne s1,v0,0x00164e68
_addu s6,s6,v1
lw ra,0xa4(sp)
lw s8,0xa0(sp)
lw s7,0x9c(sp)
lw s6,0x98(sp)
lw s5,0x94(sp)
lw s4,0x90(sp)
lw s3,0x8c(sp)
lw s2,0x88(sp)
lw s1,0x84(sp)
lw s0,0x80(sp)
ldc1 f30,0xd0(sp)
ldc1 f28,0xc8(sp)
ldc1 f26,0xc0(sp)
ldc1 f24,0xb8(sp)
ldc1 f22,0xb0(sp)
ldc1 f20,0xa8(sp)
jr ra
_addiu sp,sp,0xd8
li v0,0x20
beq s0,v0,0x00165d90
_li v0,0x40
bne s0,v0,0x00165538
_li v0,0x1
lw v1,0x8(a1)
beq v1,v0,0x00166a0c
_li v1,0x40
sltiu v0,s0,0x41
movn v1,s0,v0
li s3,0x1
addiu v0,v1,-0x1
li v1,0x2
nor a0,zero,v0
sllv v1,v1,v0
srlv s3,s3,a0
andi v0,v0,0x20
movn s3,v1,v0
movn v1,zero,v0
addiu s3,s3,-0x1
addiu s5,v1,-0x1
sltu v1,s5,v1
sw s5,0x20(sp)
addu v0,v1,s3
sw v0,0x18(sp)
blez s4,0x00164fd0
_lw v0,-0x7fd0(gp)
mtc1 zero,f20
li s3,0x8
lw s5,0x2d0(s2)
sw zero,0x28(sp)
ldc1 f24,0x1a58(v0)
lw v0,-0x7fd0(gp)
ldc1 f22,0x1a60(v0)
lw v0,-0x7fd0(gp)
ldc1 f26,0x1400(v0)
lw v0,-0x7fd0(gp)
sdc1 f24,0x30(sp)
lwc1 f0,0x1a50(v0)
mov.D f30,f22
lw v0,0x20(s5)
sdc1 f24,0x38(sp)
sll v0,v0,0x2
sdc1 f26,0x58(sp)
addu v0,s8,v0
sdc1 f22,0x40(sp)
lwc1 f28,0x0(v0)
swc1 f0,0x70(sp)
sdc1 f26,0x60(sp)
sdc1 f24,0x48(sp)
c.un.S f28,f28
sdc1 f22,0x50(sp)
bc1t 0x5,0x00165520
_sdc1 f26,0x68(sp)
c.le.S f28,f20
bc1t 0x6,0x00165520
_lw t9,-0x7f50(gp)
lw a0,0x18(sp)
jalr t9
_lw a1,0x20(sp)
cvt.d.S f28,f28
mul.D f0,f0,f28
div.D f12,f0,f24
c.le.D f22,f12
bc1t 0x7,0x00165740
_lw gp,0x10(sp)
lw t9,-0x7f5c(gp)
jalr t9
_add.D f12,f12,f26
lw gp,0x10(sp)
lw s1,0x54(s7)
bne s1,zero,0x00165144
_nop
li s1,0x8
sw s3,0x54(s7)
blez s0,0x00165764
_sll t3,v0,0x1
b 0x0016515c
_li t2,-0x1
blez t1,0x001651e4
_lw s1,0x54(s7)
sltu t0,s1,s0
or a0,s1,zero
movz a0,s0,t0
subu t1,s0,a0
or t0,a0,zero
slti s0,t1,0x0
or a0,t1,zero
movn a0,zero,s0
bne s1,s3,0x00165188
_or s0,a0,zero
sb zero,0x0(s6)
nor t5,zero,s0
sllv t5,t3,t5
srlv a0,v1,s0
srlv a1,v0,s0
andi t4,s0,0x20
or a0,t5,a0
movn a0,a1,t4
sllv a1,t2,t0
subu s1,s1,t0
nor a1,zero,a1
andi t0,s1,0x20
sw s1,0x54(s7)
and a0,a1,a0
lbu a1,0x0(s6)
sllv a0,a0,s1
movn a0,zero,t0
or a0,a0,a1
bne s1,zero,0x00165154
_sb a0,0x0(s6)
addiu s6,s6,0x1
sw s3,0x54(s7)
bgtz t1,0x0016515c
_li s1,0x8
lw s5,0x2d0(s2)
lw v0,0x14(s5)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f28,0x0(v0)
c.un.S f28,f28
bc1t 0x001655cc
_lw s0,0x0(s7)
c.le.S f28,f20
bc1t 0x1,0x001655cc
_lw t9,-0x7f50(gp)
lw a0,0x18(sp)
jalr t9
_lw a1,0x20(sp)
cvt.d.S f28,f28
ldc1 f2,0x30(sp)
mul.D f0,f0,f28
div.D f12,f0,f2
c.le.D f30,f12
bc1t 0x2,0x00165728
_lw gp,0x10(sp)
ldc1 f0,0x58(sp)
lw t9,-0x7f5c(gp)
jalr t9
_add.D f12,f12,f0
lw gp,0x10(sp)
bne s1,zero,0x0016525c
_nop
li s1,0x8
sw s3,0x54(s7)
blez s0,0x00165788
_sll t3,v0,0x1
b 0x00165274
_li t2,-0x1
blez t1,0x001652fc
_lw s1,0x54(s7)
sltu t0,s1,s0
or a0,s1,zero
movz a0,s0,t0
subu t1,s0,a0
or t0,a0,zero
slti s0,t1,0x0
or a0,t1,zero
movn a0,zero,s0
bne s1,s3,0x001652a0
_or s0,a0,zero
sb zero,0x0(s6)
nor t5,zero,s0
sllv t5,t3,t5
srlv a0,v1,s0
srlv a1,v0,s0
andi t4,s0,0x20
or a0,t5,a0
movn a0,a1,t4
sllv a1,t2,t0
subu s1,s1,t0
nor a1,zero,a1
andi t0,s1,0x20
sw s1,0x54(s7)
and a0,a1,a0
lbu a1,0x0(s6)
sllv a0,a0,s1
movn a0,zero,t0
or a0,a0,a1
bne s1,zero,0x0016526c
_sb a0,0x0(s6)
addiu s6,s6,0x1
sw s3,0x54(s7)
bgtz t1,0x00165274
_li s1,0x8
lw s5,0x2d0(s2)
lw v0,0x8(s5)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f28,0x0(v0)
c.un.S f28,f28
bc1t 0x3,0x001655c0
_lw s0,0x0(s7)
c.le.S f28,f20
bc1t 0x4,0x001655c0
_lw t9,-0x7f50(gp)
lw a0,0x18(sp)
jalr t9
_lw a1,0x20(sp)
cvt.d.S f28,f28
ldc1 f2,0x38(sp)
mul.D f0,f0,f28
div.D f12,f0,f2
ldc1 f0,0x40(sp)
c.le.D f0,f12
bc1t 0x5,0x00165734
_lw gp,0x10(sp)
ldc1 f0,0x60(sp)
lw t9,-0x7f5c(gp)
jalr t9
_add.D f12,f12,f0
lw gp,0x10(sp)
bne s1,zero,0x00165378
_nop
li s1,0x8
sw s3,0x54(s7)
blez s0,0x0016574c
_sll t3,v0,0x1
b 0x00165390
_li t2,-0x1
blez t1,0x00165418
_lw s1,0x54(s7)
sltu t0,s1,s0
or a0,s1,zero
movz a0,s0,t0
subu t1,s0,a0
or t0,a0,zero
slti s0,t1,0x0
or a0,t1,zero
movn a0,zero,s0
bne s1,s3,0x001653bc
_or s0,a0,zero
sb zero,0x0(s6)
nor t5,zero,s0
sllv t5,t3,t5
srlv a0,v1,s0
srlv a1,v0,s0
andi t4,s0,0x20
or a0,t5,a0
movn a0,a1,t4
sllv a1,t2,t0
subu s1,s1,t0
nor a1,zero,a1
andi t0,s1,0x20
sw s1,0x54(s7)
and a0,a1,a0
lbu a1,0x0(s6)
sllv a0,a0,s1
movn a0,zero,t0
or a0,a0,a1
bne s1,zero,0x00165388
_sb a0,0x0(s6)
addiu s6,s6,0x1
sw s3,0x54(s7)
bgtz t1,0x00165390
_li s1,0x8
lw s5,0x2d0(s2)
li v0,0x4
lw v1,0x34(s5)
beq v1,v0,0x0016554c
_lw s0,0x0(s7)
or v0,zero,zero
or v1,zero,zero
bne s1,zero,0x00165440
_nop
sw s3,0x54(s7)
blez s0,0x001654dc
_nop
sll t4,v0,0x1
li t3,-0x1
lw t1,0x54(s7)
sltu t0,t1,s0
or a0,t1,zero
movz a0,s0,t0
subu t2,s0,a0
or t0,a0,zero
slti s0,t2,0x0
or a0,t2,zero
movn a0,zero,s0
bne t1,s3,0x00165480
_or s0,a0,zero
sb zero,0x0(s6)
nor t6,zero,s0
sllv t6,t4,t6
srlv a0,v1,s0
srlv a1,v0,s0
andi t5,s0,0x20
or a0,t6,a0
movn a0,a1,t5
sllv a1,t3,t0
subu t0,t1,t0
nor a1,zero,a1
andi t1,t0,0x20
sw t0,0x54(s7)
and a0,a1,a0
lbu a1,0x0(s6)
sllv a0,a0,t0
movn a0,zero,t1
or a0,a0,a1
bne t0,zero,0x001654d4
_sb a0,0x0(s6)
addiu s6,s6,0x1
sw s3,0x54(s7)
bgtz t2,0x00165450
_nop
lw v1,0x28(sp)
lw v0,0x2c0(s2)
addiu a0,v1,0x1
lw v1,0x28(s7)
sll v0,v0,0x2
sw a0,0x28(sp)
addu s6,s6,v1
beq a0,s4,0x00164fd0
_addu s8,s8,v0
lw s5,0x2d0(s2)
lw v0,0x20(s5)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f28,0x0(v0)
c.un.S f28,f28
bc1f 0x5,0x001650f0
_lw s0,0x0(s7)
or v0,zero,zero
b 0x00165130
_or v1,zero,zero
ldc1 f2,0x38(sp)
b 0x00164eec
_add.D f0,f0,f2
bne s0,zero,0x00165038
_li v1,0x40
sw zero,0x18(sp)
b 0x0016507c
_sw zero,0x20(sp)
lw v0,0x38(s5)
lwc1 f0,0x70(sp)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f28,0x0(v0)
sub.S S f28,f0,f28
c.un.S f28,f28
bc1t 0x6,0x00165430
_or v0,zero,zero
c.le.S f28,f20
bc1t 0x7,0x00165430
_lw t9,-0x7f50(gp)
lw a0,0x18(sp)
jalr t9
_lw a1,0x20(sp)
cvt.d.S f28,f28
ldc1 f2,0x48(sp)
mul.D f0,f0,f28
div.D f12,f0,f2
ldc1 f0,0x50(sp)
c.le.D f0,f12
bc1t 0x0016571c
_lw gp,0x10(sp)
ldc1 f0,0x68(sp)
lw t9,-0x7f5c(gp)
jalr t9
_add.D f12,f12,f0
b 0x00165434
_lw gp,0x10(sp)
or v0,zero,zero
b 0x00165368
_or v1,zero,zero
or v0,zero,zero
b 0x0016524c
_or v1,zero,zero
bc1t 0x4,0x00164fa0
_mtc1 zero,f2
c.le.S f0,f2
bc1t 0x5,0x00164fa0
_ldc1 f4,-0x7538(s3)
cvt.d.S f0,f0
lw v0,0x18(sp)
ldc1 f12,0x1a58(v0)
lw v0,0x20(sp)
mul.D f0,f0,f4
ldc1 f2,0x1a60(v0)
div.D f0,f0,f12
c.le.D f2,f0
bc1t 0x6,0x001662c0
_lw v0,0x28(sp)
lw t9,-0x7f5c(gp)
ldc1 f12,0x1400(v0)
jalr t9
_add.D f12,f0,f12
sll v0,v1,0x16
lw gp,0x10(sp)
b 0x00164fa0
_or s5,s5,v0
c.un.S f0,f0
bc1t 0x7,0x00164fa0
_mtc1 zero,f2
c.le.S f0,f2
bc1t 0x00164fa0
_nop
cvt.d.S f12,f0
ldc1 f0,0x50(sp)
mul.D f12,f12,f0
ldc1 f0,0x58(sp)
div.D f12,f12,f0
ldc1 f0,0x60(sp)
c.le.D f0,f12
bc1t 0x1,0x001662a8
_ldc1 f0,0x68(sp)
lw t9,-0x7f5c(gp)
jalr t9
_add.D f12,f12,f0
sll v0,v1,0xc
lw gp,0x10(sp)
b 0x00164fa0
_or s5,s5,v0
lw a1,0x34(v1)
li a0,0x4
beq a1,a0,0x00166134
_mtc1 zero,f0
b 0x00164ef4
_lui v1,0xaaaa
lw a0,0x14(v1)
sll a0,a0,0x2
addu a0,s8,a0
lwc1 f0,0x0(a0)
c.le.S f2,f0
bc1t 0x1,0x001657d4
_lui a0,0x8000
trunc.w.S f0,f0
mfc1 v1,f0
mtc1 v1,f0
bgez v1,0x00164eec
_cvt.d.W f0,f0
ldc1 f2,0x30(sp)
b 0x00164eec
_add.D f0,f0,f2
lw v1,0x20(v1)
sll v1,v1,0x2
addu v1,s8,v1
lwc1 f0,0x0(v1)
c.le.S f20,f0
bc1t 0x2,0x001657ac
_lui a0,0x8000
trunc.w.S f0,f0
mfc1 v1,f0
mtc1 v1,f0
bgez v1,0x00164eec
_cvt.d.W f0,f0
ldc1 f2,0x70(sp)
b 0x00164eec
_add.D f0,f0,f2
li v0,-0x1
b 0x00165434
_li v1,-0x1
li v0,-0x1
b 0x0016524c
_li v1,-0x1
li v0,-0x1
b 0x00165368
_li v1,-0x1
li v0,-0x1
b 0x00165130
_li v1,-0x1
lw v1,0x34(s5)
li v0,0x4
beq v1,v0,0x0016554c
_or v0,zero,zero
b 0x00165440
_or v1,zero,zero
lw v0,0x14(s5)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f28,0x0(v0)
c.un.S f28,f28
bc1f 0x3,0x00165204
_or v0,zero,zero
b 0x0016525c
_or v1,zero,zero
lw v0,0x8(s5)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f28,0x0(v0)
c.un.S f28,f28
bc1f 0x4,0x0016531c
_or v0,zero,zero
b 0x00165378
_or v1,zero,zero
sub.S S f0,f0,f20
trunc.w.S f0,f0
mfc1 v1,f0
b 0x00165704
_or v1,v1,a0
sub.S S f0,f0,f2
trunc.w.S f0,f0
mfc1 v1,f0
b 0x00164ee0
_or v1,v1,a0
sub.S S f0,f0,f2
trunc.w.S f0,f0
mfc1 v1,f0
b 0x001656c8
_or v1,v1,a0
blez a3,0x00164fd0
_lw v0,-0x7fc8(gp)
or v1,zero,zero
lw a0,-0x7fd0(gp)
ldc1 f6,-0x5af0(v0)
lw v0,-0x7fc8(gp)
ldc1 f8,0x1410(a0)
ldc1 f4,-0x5ae8(v0)
lw v0,-0x7fd0(gp)
ldc1 f10,0x1400(v0)
mov.D f20,f6
lw v0,-0x7fd0(gp)
mov.D f16,f8
mov.D f18,f4
lw a2,0x1a50(v0)
mov.D f22,f6
mov.D f30,f10
mov.D f24,f4
mov.D f12,f8
mov.D f26,f6
mov.D f28,f4
mov.D f14,f10
mfc1 t1,f10
mfhc1 t0,f10
lw v0,0x2d0(s2)
lw v0,0x20(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
c.un.S f0,f0
bc1t 0x00165a24
_mtc1 zero,f2
c.le.S f0,f2
bc1t 0x1,0x00165a24
_nop
cvt.d.S f0,f0
div.D f0,f0,f6
c.le.D f4,f0
bc1t 0x2,0x00165a80
_nop
add.D f0,f0,f10
c.le.D f8,f0
bc1t 0x3,0x00165a6c
_lui a1,0x8000
trunc.w.D f0,f0
mfc1 v0,f0
andi v0,v0,0xff
sb v0,0x0(s6)
lw v0,0x2d0(s2)
lw v0,0x14(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
c.un.S f0,f0
bc1t 0x4,0x00165a1c
_mtc1 zero,f2
c.le.S f0,f2
bc1t 0x5,0x00165a1c
_nop
cvt.d.S f0,f0
div.D f0,f0,f20
c.le.D f18,f0
bc1t 0x6,0x00165a90
_nop
add.D f0,f0,f30
c.le.D f16,f0
bc1t 0x7,0x00165a58
_lui a1,0x8000
trunc.w.D f0,f0
mfc1 v0,f0
andi v0,v0,0xff
sb v0,0x1(s6)
lw v0,0x2d0(s2)
lw v0,0x8(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
c.un.S f0,f0
bc1t 0x00165a14
_mtc1 zero,f2
c.le.S f0,f2
bc1t 0x1,0x00165a14
_nop
cvt.d.S f0,f0
div.D f0,f0,f22
c.le.D f24,f0
bc1t 0x2,0x00165a88
_nop
mtc1 t1,f2
mthc1 t0,f2
add.D f0,f0,f2
c.le.D f12,f0
bc1t 0x3,0x00165a44
_lui a1,0x8000
trunc.w.D f0,f0
mfc1 v0,f0
andi v0,v0,0xff
sb v0,0x2(s6)
li a1,0x4
lw v0,0x2d0(s2)
lw a3,0x34(v0)
beq a3,a1,0x001659b4
_mtc1 a2,f2
or v0,zero,zero
sb v0,0x3(s6)
addiu v1,v1,0x1
lw v0,0x2c0(s2)
addiu s6,s6,0x4
lw a1,0x28(s7)
sll v0,v0,0x2
addu s6,s6,a1
bne v1,s4,0x00165848
_addu s8,s8,v0
b 0x00164fd4
_lw ra,0xa4(sp)
lw v0,0x38(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
sub.S S f0,f2,f0
c.un.S f0,f0
bc1t 0x4,0x00165984
_mtc1 zero,f2
c.le.S f0,f2
bc1t 0x5,0x00165984
_nop
cvt.d.S f0,f0
div.D f0,f0,f26
c.le.D f28,f0
bc1t 0x6,0x00165a98
_ldc1 f2,0x1410(a0)
add.D f0,f0,f14
c.le.D f2,f0
bc1t 0x7,0x00165a2c
_lui a1,0x8000
trunc.w.D f0,f0
mfc1 v0,f0
b 0x00165988
_andi v0,v0,0xff
b 0x0016596c
_or v0,zero,zero
b 0x00165904
_or v0,zero,zero
b 0x001658a4
_or v0,zero,zero
sub.D D f0,f0,f2
trunc.w.D f0,f0
mfc1 v0,f0
or v0,v0,a1
b 0x00165988
_andi v0,v0,0xff
sub.D D f0,f0,f12
trunc.w.D f0,f0
mfc1 v0,f0
b 0x00165968
_or v0,v0,a1
sub.D D f0,f0,f16
trunc.w.D f0,f0
mfc1 v0,f0
b 0x00165900
_or v0,v0,a1
sub.D D f0,f0,f8
trunc.w.D f0,f0
mfc1 v0,f0
b 0x001658a0
_or v0,v0,a1
b 0x001658a4
_li v0,0xff
b 0x0016596c
_li v0,0xff
b 0x00165904
_li v0,0xff
b 0x00165988
_li v0,0xff
lw v1,0x8(a1)
li v0,0x1
beq v1,v0,0x00166710
_nop
blez a3,0x00164fd0
_lw v0,-0x7fd0(gp)
mtc1 zero,f2
or a0,zero,zero
lui a3,0x8000
li v1,0x1
lwc1 f6,0x1a50(v0)
li a1,0x4
lw v0,-0x7fd0(gp)
ldc1 f10,0x1400(v0)
lw v0,-0x7fd0(gp)
ldc1 f4,0x1410(v0)
mov.S f18,f6
mov.S f16,f6
mov.D f22,f10
mov.D f24,f10
mov.D f20,f4
mov.D f14,f4
mov.S f8,f6
mov.D f26,f10
mov.D f12,f4
lw v0,0x2d0(s2)
lw v0,0x20(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
c.un.S f0,f0
bc1t 0x5,0x00165d74
_nop
c.le.S f0,f2
bc1t 0x6,0x00165d74
_nop
c.le.S f6,f0
bc1t 0x7,0x00166250
_nop
cvt.d.S f0,f0
add.D f0,f0,f10
c.le.D f4,f0
bc1t 0x001661f0
_nop
trunc.w.D f0,f0
mfc1 v0,f0
andi v0,v0,0xffff
srl t1,v0,0x8
andi v0,v0,0xff
lw t0,0x44(s7)
beq t0,v1,0x00165d84
_nop
sb t1,0x0(s6)
sb v0,0x1(s6)
lw v0,0x2d0(s2)
lw v0,0x14(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
c.un.S f0,f0
bc1t 0x1,0x00165d54
_nop
c.le.S f0,f2
bc1t 0x2,0x00165d54
_nop
c.le.S f18,f0
bc1t 0x3,0x00166224
_nop
cvt.d.S f0,f0
add.D f0,f0,f22
c.le.D f20,f0
bc1t 0x4,0x00166204
_nop
trunc.w.D f0,f0
mfc1 v0,f0
andi v0,v0,0xffff
srl t2,v0,0x8
andi v0,v0,0xff
lw t0,0x44(s7)
beq t0,v1,0x00165d64
_nop
addiu t1,s6,0x4
sb t2,0x2(s6)
sb v0,0x3(s6)
lw v0,0x2d0(s2)
lw v0,0x8(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
c.un.S f0,f0
bc1t 0x5,0x00165d34
_nop
c.le.S f0,f2
bc1t 0x6,0x00165d34
_nop
c.le.S f16,f0
bc1t 0x7,0x00166218
_nop
cvt.d.S f0,f0
add.D f0,f0,f24
c.le.D f14,f0
bc1t 0x001661dc
_nop
trunc.w.D f0,f0
mfc1 v0,f0
andi v0,v0,0xffff
srl t2,v0,0x8
andi v0,v0,0xff
lw t0,0x44(s7)
beq t0,v1,0x00165d44
_nop
addiu t0,t1,0x2
sb t2,0x0(t1)
sb v0,0x1(t1)
lw v0,0x2d0(s2)
lw t1,0x34(v0)
beq t1,a1,0x00165cbc
_nop
or v0,zero,zero
or t1,zero,zero
lw t2,0x44(s7)
beq t2,v1,0x00165d24
_nop
addiu s6,t0,0x2
sb t1,0x0(t0)
sb v0,0x1(t0)
lw v0,0x2c0(s2)
addiu a0,a0,0x1
lw t0,0x28(s7)
sll v0,v0,0x2
addu s6,s6,t0
bne a0,s4,0x00165b04
_addu s8,s8,v0
b 0x00164fd4
_lw ra,0xa4(sp)
lw v0,0x38(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
sub.S S f0,f8,f0
c.un.S f0,f0
bc1t 0x1,0x00165c78
_nop
c.le.S f0,f2
bc1t 0x2,0x00165c78
_nop
c.le.S f8,f0
bc1t 0x3,0x00166244
_nop
cvt.d.S f0,f0
add.D f0,f0,f26
c.le.D f12,f0
bc1t 0x4,0x00166178
_nop
trunc.w.D f0,f0
mfc1 v0,f0
lw t2,0x44(s7)
andi v0,v0,0xffff
srl t1,v0,0x8
bne t2,v1,0x00165c8c
_andi v0,v0,0xff
sb v0,0x0(t0)
addiu s6,t0,0x2
b 0x00165c98
_sb t1,0x1(t0)
lw t0,0x44(s7)
or v0,zero,zero
bne t0,v1,0x00165c5c
_or t2,zero,zero
sb v0,0x0(t1)
addiu t0,t1,0x2
b 0x00165c68
_sb t2,0x1(t1)
lw t0,0x44(s7)
or v0,zero,zero
bne t0,v1,0x00165be4
_or t2,zero,zero
sb v0,0x2(s6)
addiu t1,s6,0x4
b 0x00165bf0
_sb t2,0x3(s6)
lw t0,0x44(s7)
or v0,zero,zero
bne t0,v1,0x00165b70
_or t1,zero,zero
sb v0,0x0(s6)
b 0x00165b78
_sb t1,0x1(s6)
lw v1,0x8(a1)
li v0,0x1
beq v1,v0,0x00166864
_nop
blez a3,0x00164fd0
_lw v0,-0x7fc8(gp)
or a1,zero,zero
lw a3,-0x7fd0(gp)
ldc1 f6,-0x5b00(v0)
lw v0,-0x7fc8(gp)
ldc1 f8,0x1410(a3)
ldc1 f4,-0x5af8(v0)
lw v0,-0x7fd0(gp)
ldc1 f10,0x1400(v0)
mov.D f20,f6
lw v0,-0x7fd0(gp)
mov.D f16,f8
mov.D f18,f4
lw a2,0x1a50(v0)
mov.D f12,f6
mov.D f30,f10
mov.D f22,f4
mfc1 t5,f10
mfhc1 t4,f10
mov.D f24,f8
mov.D f26,f6
mov.D f28,f4
b 0x00165e54
_mov.D f14,f10
or v0,zero,zero
or a0,zero,zero
or t0,zero,zero
or t1,zero,zero
lw t3,0x44(s7)
li t2,0x1
beq t3,t2,0x00166084
_nop
addiu s6,v1,0x4
sb t1,0x0(v1)
sb t0,0x1(v1)
sb a0,0x2(v1)
sb v0,0x3(v1)
lw v0,0x2c0(s2)
addiu a1,a1,0x1
lw v1,0x28(s7)
sll v0,v0,0x2
addu s6,s6,v1
beq a1,s4,0x00164fd0
_addu s8,s8,v0
lw v0,0x2d0(s2)
lw v0,0x20(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
c.un.S f0,f0
bc1t 0x5,0x001660d0
_mtc1 zero,f2
c.le.S f0,f2
bc1t 0x6,0x001660d0
_nop
cvt.d.S f0,f0
mul.D f0,f0,f6
c.le.D f4,f0
bc1t 0x7,0x0016626c
_li t0,0xff
add.D f0,f0,f10
c.le.D f8,f0
bc1t 0x001661c8
_lui v1,0x8000
trunc.w.D f0,f0
mfc1 v0,f0
srl t2,v0,0x18
ext t1,v0,0x10,0x8
ext t0,v0,0x8,0x8
andi v0,v0,0xff
lw a0,0x44(s7)
li v1,0x1
beq a0,v1,0x001660ec
_nop
sb t2,0x0(s6)
sb t1,0x1(s6)
sb t0,0x2(s6)
sb v0,0x3(s6)
lw v0,0x2d0(s2)
lw v0,0x14(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
c.un.S f0,f0
bc1t 0x1,0x00166100
_mtc1 zero,f2
c.le.S f0,f2
bc1t 0x2,0x00166100
_nop
cvt.d.S f0,f0
mul.D f0,f0,f20
c.le.D f18,f0
bc1t 0x3,0x0016627c
_li t0,0xff
add.D f0,f0,f30
c.le.D f16,f0
bc1t 0x4,0x0016618c
_lui v1,0x8000
trunc.w.D f0,f0
mfc1 v0,f0
srl t2,v0,0x18
ext t1,v0,0x10,0x8
ext t0,v0,0x8,0x8
andi v0,v0,0xff
lw a0,0x44(s7)
li v1,0x1
beq a0,v1,0x0016611c
_nop
addiu a0,s6,0x8
sb t2,0x4(s6)
sb t1,0x5(s6)
sb t0,0x6(s6)
sb v0,0x7(s6)
lw v0,0x2d0(s2)
lw v0,0x8(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
c.un.S f0,f0
bc1t 0x5,0x0016609c
_mtc1 zero,f2
c.le.S f0,f2
bc1t 0x6,0x0016609c
_nop
cvt.d.S f0,f0
mul.D f0,f0,f12
c.le.D f22,f0
bc1t 0x7,0x0016625c
_li t1,0xff
mtc1 t5,f2
mthc1 t4,f2
add.D f0,f0,f2
c.le.D f24,f0
bc1t 0x001661b4
_lui v1,0x8000
trunc.w.D f0,f0
mfc1 v0,f0
srl t3,v0,0x18
ext t2,v0,0x10,0x8
ext t1,v0,0x8,0x8
andi v0,v0,0xff
lw t0,0x44(s7)
li v1,0x1
beq t0,v1,0x001660b8
_nop
addiu v1,a0,0x4
sb t3,0x0(a0)
sb t2,0x1(a0)
sb t1,0x2(a0)
sb v0,0x3(a0)
lw v0,0x2d0(s2)
li a0,0x4
lw t0,0x34(v0)
bne t0,a0,0x00165e04
_mtc1 a2,f2
lw v0,0x38(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
sub.S S f0,f2,f0
c.un.S f0,f0
bc1t 0x1,0x00165e04
_mtc1 zero,f2
c.le.S f0,f2
bc1t 0x2,0x00165e04
_nop
cvt.d.S f0,f0
mul.D f0,f0,f26
c.le.D f28,f0
bc1t 0x3,0x00166230
_ldc1 f2,0x1410(a3)
add.D f0,f0,f14
c.le.D f2,f0
bc1t 0x4,0x001661a0
_lui a0,0x8000
trunc.w.D f0,f0
mfc1 v0,f0
lw t3,0x44(s7)
li t2,0x1
srl t1,v0,0x18
ext t0,v0,0x10,0x8
ext a0,v0,0x8,0x8
bne t3,t2,0x00165e24
_andi v0,v0,0xff
sb v0,0x0(v1)
addiu s6,v1,0x4
sb a0,0x1(v1)
sb t0,0x2(v1)
b 0x00165e38
_sb t1,0x3(v1)
lw t0,0x44(s7)
li v1,0x1
or v0,zero,zero
or t1,zero,zero
or t2,zero,zero
bne t0,v1,0x00165fe8
_or t3,zero,zero
sb v0,0x0(a0)
addiu v1,a0,0x4
sb t1,0x1(a0)
sb t2,0x2(a0)
b 0x00165ffc
_sb t3,0x3(a0)
lw a0,0x44(s7)
li v1,0x1
or v0,zero,zero
or t0,zero,zero
or t1,zero,zero
bne a0,v1,0x00165ecc
_or t2,zero,zero
sb v0,0x0(s6)
sb t0,0x1(s6)
sb t1,0x2(s6)
b 0x00165edc
_sb t2,0x3(s6)
lw a0,0x44(s7)
li v1,0x1
or v0,zero,zero
or t0,zero,zero
or t1,zero,zero
bne a0,v1,0x00165f54
_or t2,zero,zero
sb v0,0x4(s6)
addiu a0,s6,0x8
sb t0,0x5(s6)
sb t1,0x6(s6)
b 0x00165f68
_sb t2,0x7(s6)
lw a0,0x38(v1)
lwc1 f4,0x7c(sp)
sll a0,a0,0x2
lwc1 f2,-0x51e0(s0)
addu a0,s8,a0
lwc1 f0,0x0(a0)
sub.S S f0,f4,f0
c.le.S f2,f0
bc1t 0x3,0x001666fc
_lui a0,0x8000
trunc.w.S f0,f0
mfc1 v1,f0
mtc1 v1,f0
bgez v1,0x00164eec
_cvt.d.W f0,f0
b 0x00164eec
_add.D f0,f0,f30
sub.D D f0,f0,f12
trunc.w.D f0,f0
mfc1 v0,f0
b 0x00165d10
_or v0,v0,a3
sub.D D f0,f0,f16
trunc.w.D f0,f0
mfc1 v0,f0
b 0x00165f34
_or v0,v0,v1
sub.D D f0,f0,f2
trunc.w.D f0,f0
mfc1 v0,f0
b 0x00166068
_or v0,v0,a0
sub.D D f0,f0,f24
trunc.w.D f0,f0
mfc1 v0,f0
b 0x00165fc8
_or v0,v0,v1
sub.D D f0,f0,f8
trunc.w.D f0,f0
mfc1 v0,f0
b 0x00165eac
_or v0,v0,v1
sub.D D f0,f0,f14
trunc.w.D f0,f0
mfc1 v0,f0
b 0x00165c44
_or v0,v0,a3
sub.D D f0,f0,f4
trunc.w.D f0,f0
mfc1 v0,f0
b 0x00165b58
_or v0,v0,a3
sub.D D f0,f0,f20
trunc.w.D f0,f0
mfc1 v0,f0
b 0x00165bcc
_or v0,v0,a3
li v0,0xff
b 0x00165c50
_li t2,0xff
li v0,0xff
b 0x00165bd8
_li t2,0xff
li v0,0xff
li a0,0xff
li t0,0xff
b 0x00165e14
_li t1,0xff
li v0,0xff
b 0x00165c80
_li t1,0xff
li v0,0xff
b 0x00165b64
_li t1,0xff
li v0,0xff
li t2,0xff
b 0x00165fd8
_li t3,0xff
li v0,0xff
li t1,0xff
b 0x00165ebc
_li t2,0xff
li v0,0xff
li t1,0xff
b 0x00165f44
_li t2,0xff
sb v1,0x0(s6)
or s5,zero,zero
sb a0,0x1(s6)
sb a1,0x2(s6)
sb t1,0x3(s6)
b 0x00164fa0
_or s6,v0,zero
li v0,-0x1000
b 0x00164fa0
_or s5,s5,v0
li v0,-0x4
b 0x00164f68
_or s5,s5,v0
lui v0,0xffc0
b 0x00164fa0
_or s5,s5,v0
lw v1,0x4(a1)
li v0,0x20
beq v1,v0,0x00166e90
_nop
blez a3,0x00164fd0
_lw v0,-0x7fc4(gp)
or s3,zero,zero
lw v1,-0x7fd0(gp)
ldc1 f24,-0x7538(v0)
lw v0,-0x7fd0(gp)
ldc1 f26,0x1400(v1)
sw v1,0x50(sp)
ldc1 f22,0x1a58(v0)
lw v0,-0x7fd0(gp)
ldc1 f20,0x1a60(v0)
mov.D f28,f24
lw v0,-0x7fd0(gp)
sdc1 f26,0x58(sp)
lwc1 f0,0x1a50(v0)
mov.D f30,f22
sdc1 f24,0x20(sp)
sdc1 f20,0x18(sp)
sdc1 f22,0x28(sp)
swc1 f0,0x68(sp)
sdc1 f20,0x30(sp)
sdc1 f26,0x60(sp)
sdc1 f24,0x38(sp)
sdc1 f22,0x40(sp)
sdc1 f20,0x48(sp)
lw s5,0x2d0(s2)
lw v0,0x8(s5)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f12,0x0(v0)
c.un.S f12,f12
bc1t 0x1,0x00166cac
_mtc1 zero,f0
c.le.S f12,f0
bc1t 0x2,0x00166390
_or v1,zero,zero
cvt.d.S f12,f12
mul.D f12,f12,f24
div.D f12,f12,f22
c.le.D f20,f12
bc1t 0x3,0x00166e20
_lw t9,-0x7f5c(gp)
jalr t9
_add.D f12,f12,f26
lw gp,0x10(sp)
lw s1,0x54(s7)
bne s1,zero,0x001663a4
_li v0,0x8
li s1,0x8
sw v0,0x54(s7)
blez s0,0x00166e30
_li t1,0x8
b 0x001663bc
_li t2,-0x1
blez a3,0x00166434
_lw s1,0x54(s7)
sltu a1,s1,s0
or v0,s1,zero
movz v0,s0,a1
subu a3,s0,v0
or a1,v0,zero
slti s0,a3,0x0
or v0,a3,zero
movn v0,zero,s0
bne s1,t1,0x001663e8
_or s0,v0,zero
sb zero,0x0(s6)
srlv a0,v1,s0
andi v0,s0,0x20
movn a0,zero,v0
sllv v0,t2,a1
subu s1,s1,a1
nor v0,zero,v0
andi t0,s1,0x20
sw s1,0x54(s7)
and v0,v0,a0
lbu a1,0x0(s6)
sllv v0,v0,s1
movn v0,zero,t0
or v0,v0,a1
bne s1,zero,0x001663b4
_sb v0,0x0(s6)
addiu s6,s6,0x1
sw t1,0x54(s7)
bgtz a3,0x001663bc
_li s1,0x8
lw s5,0x2d0(s2)
lw v0,0x14(s5)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f12,0x0(v0)
c.un.S f12,f12
bc1t 0x4,0x00166cbc
_lw s0,0x0(s7)
mtc1 zero,f0
c.le.S f12,f0
bc1t 0x5,0x00166cbc
_ldc1 f0,0x18(sp)
cvt.d.S f12,f12
mul.D f12,f12,f28
div.D f12,f12,f30
c.le.D f0,f12
bc1t 0x6,0x00166e18
_ldc1 f0,0x58(sp)
lw t9,-0x7f5c(gp)
jalr t9
_add.D f12,f12,f0
lw gp,0x10(sp)
bne s1,zero,0x0016649c
_li v0,0x8
li s1,0x8
sw v0,0x54(s7)
blez s0,0x00166e6c
_li t1,0x8
b 0x001664b4
_li t2,-0x1
blez a3,0x0016652c
_lw s1,0x54(s7)
sltu a1,s1,s0
or v0,s1,zero
movz v0,s0,a1
subu a3,s0,v0
or a1,v0,zero
slti s0,a3,0x0
or v0,a3,zero
movn v0,zero,s0
bne s1,t1,0x001664e0
_or s0,v0,zero
sb zero,0x0(s6)
srlv a0,v1,s0
andi v0,s0,0x20
movn a0,zero,v0
sllv v0,t2,a1
subu s1,s1,a1
nor v0,zero,v0
andi t0,s1,0x20
sw s1,0x54(s7)
and v0,v0,a0
lbu a1,0x0(s6)
sllv v0,v0,s1
movn v0,zero,t0
or v0,v0,a1
bne s1,zero,0x001664ac
_sb v0,0x0(s6)
addiu s6,s6,0x1
sw t1,0x54(s7)
bgtz a3,0x001664b4
_li s1,0x8
lw s5,0x2d0(s2)
lw v0,0x20(s5)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f12,0x0(v0)
c.un.S f12,f12
bc1t 0x7,0x00166cb4
_lw s0,0x0(s7)
mtc1 zero,f0
c.le.S f12,f0
bc1t 0x00166cb4
_ldc1 f0,0x20(sp)
cvt.d.S f12,f12
mul.D f12,f12,f0
ldc1 f0,0x28(sp)
div.D f12,f12,f0
ldc1 f0,0x30(sp)
c.le.D f0,f12
bc1t 0x1,0x00166e10
_ldc1 f0,0x60(sp)
lw t9,-0x7f5c(gp)
jalr t9
_add.D f12,f12,f0
lw gp,0x10(sp)
bne s1,zero,0x0016659c
_li v0,0x8
li s1,0x8
sw v0,0x54(s7)
blez s0,0x00166e54
_li t1,0x8
b 0x001665b4
_li t2,-0x1
blez a3,0x0016662c
_lw s1,0x54(s7)
sltu a1,s1,s0
or v0,s1,zero
movz v0,s0,a1
subu a3,s0,v0
or a1,v0,zero
slti s0,a3,0x0
or v0,a3,zero
movn v0,zero,s0
bne s1,t1,0x001665e0
_or s0,v0,zero
sb zero,0x0(s6)
srlv a0,v1,s0
andi v0,s0,0x20
movn a0,zero,v0
sllv v0,t2,a1
subu s1,s1,a1
nor v0,zero,v0
andi t0,s1,0x20
sw s1,0x54(s7)
and v0,v0,a0
lbu a1,0x0(s6)
sllv v0,v0,s1
movn v0,zero,t0
or v0,v0,a1
bne s1,zero,0x001665ac
_sb v0,0x0(s6)
addiu s6,s6,0x1
sw t1,0x54(s7)
bgtz a3,0x001665b4
_li s1,0x8
lw s5,0x2d0(s2)
li v0,0x4
lw v1,0x34(s5)
beq v1,v0,0x00166c44
_lw s0,0x0(s7)
or v1,zero,zero
bne s1,zero,0x00166650
_li v0,0x8
sw v0,0x54(s7)
blez s0,0x001666d8
_nop
li t2,0x8
li t3,-0x1
lw t0,0x54(s7)
sltu a3,t0,s0
or a1,t0,zero
movz a1,s0,a3
subu t1,s0,a1
slti s0,t1,0x0
or v0,t1,zero
movn v0,zero,s0
bne t0,t2,0x0016668c
_or s0,v0,zero
sb zero,0x0(s6)
srlv a0,v1,s0
andi v0,s0,0x20
movn a0,zero,v0
sllv v0,t3,a1
subu a3,t0,a1
nor v0,zero,v0
andi t0,a3,0x20
sw a3,0x54(s7)
and v0,v0,a0
lbu a1,0x0(s6)
sllv v0,v0,a3
movn v0,zero,t0
or v0,v0,a1
bne a3,zero,0x001666d0
_sb v0,0x0(s6)
addiu s6,s6,0x1
sw t2,0x54(s7)
bgtz t1,0x00166660
_nop
lw v0,0x2c0(s2)
addiu s3,s3,0x1
lw v1,0x28(s7)
sll v0,v0,0x2
addu s6,s6,v1
beq s3,s4,0x00164fd0
_addu s8,s8,v0
b 0x00166340
_lw s0,0x0(s7)
sub.S S f0,f0,f2
trunc.w.S f0,f0
mfc1 v1,f0
b 0x00166164
_or v1,v1,a0
blez a3,0x00164fd0
_lw v0,-0x7fd0(gp)
or t1,zero,zero
lw t9,-0x7d54(gp)
li t0,0x1
li t2,0x4
ldc1 f0,0x1440(v0)
lw v0,-0x7fd0(gp)
addiu t9,t9,0x5b60
lwc1 f6,0x1a50(v0)
mov.D f4,f0
mov.D f2,f0
b 0x00166824
_mov.D f8,f0
sb v1,0x0(s6)
sb v0,0x1(s6)
lw v0,0x2d0(s2)
lw v0,0x14(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f12,0x0(v0)
cvt.d.S f12,f12
mul.D f12,f12,f4
bal 0x00155b60
_cvt.s.D f12,f12
lw a0,0x44(s7)
ext v1,v0,0x8,0x8
beq a0,t0,0x00166e00
_andi v0,v0,0xff
addiu t3,s6,0x4
sb v1,0x2(s6)
sb v0,0x3(s6)
lw v0,0x2d0(s2)
lw v0,0x8(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f12,0x0(v0)
cvt.d.S f12,f12
mul.D f12,f12,f2
bal 0x00155b60
_cvt.s.D f12,f12
lw a0,0x44(s7)
ext v1,v0,0x8,0x8
beq a0,t0,0x00166df0
_andi v0,v0,0xff
addiu t4,t3,0x2
sb v1,0x0(t3)
sb v0,0x1(t3)
lw v0,0x2d0(s2)
lw v1,0x34(v0)
beq v1,t2,0x00166dcc
_nop
mtc1 zero,f12
bal 0x00155b60
_nop
lw a0,0x44(s7)
ext v1,v0,0x8,0x8
beq a0,t0,0x00166dbc
_andi v0,v0,0xff
addiu s6,t4,0x2
sb v1,0x0(t4)
sb v0,0x1(t4)
lw v0,0x2c0(s2)
addiu t1,t1,0x1
lw v1,0x28(s7)
sll v0,v0,0x2
addu s6,s6,v1
beq t1,s4,0x00164fd0
_addu s8,s8,v0
lw v0,0x2d0(s2)
lw v0,0x20(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f12,0x0(v0)
cvt.d.S f12,f12
mul.D f12,f12,f0
bal 0x00155b60
_cvt.s.D f12,f12
lw a0,0x44(s7)
ext v1,v0,0x8,0x8
bne a0,t0,0x00166748
_andi v0,v0,0xff
sb v0,0x0(s6)
b 0x00166750
_sb v1,0x1(s6)
blez a3,0x00164fd0
_lw v0,-0x7fd0(gp)
or a0,zero,zero
li v1,0x1
li a1,0x4
b 0x001669b4
_lwc1 f6,0x1a50(v0)
sb t1,0x0(s6)
sb t0,0x1(s6)
sb a3,0x2(s6)
sb v0,0x3(s6)
lw v0,0x2d0(s2)
ldc1 f4,0x48(s7)
lw t0,0x44(s7)
ldc1 f2,0x10(s7)
lw v0,0x14(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
cvt.d.S f0,f0
madd.D f0,f2,f0,f4
cvt.s.D f0,f0
mfc1 v0,f0
andi t2,v0,0xff
ext t1,v0,0x8,0x8
ext a3,v0,0x10,0x8
beq t0,v1,0x00166da4
_ext v0,v0,0x18,0x8
addiu t0,s6,0x8
sb t2,0x4(s6)
sb t1,0x5(s6)
sb a3,0x6(s6)
sb v0,0x7(s6)
lw v0,0x2d0(s2)
ldc1 f4,0x48(s7)
lw a3,0x44(s7)
ldc1 f2,0x10(s7)
lw v0,0x20(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
cvt.d.S f0,f0
madd.D f0,f2,f0,f4
cvt.s.D f0,f0
mfc1 v0,f0
andi t3,v0,0xff
ext t2,v0,0x8,0x8
ext t1,v0,0x10,0x8
beq a3,v1,0x00166d8c
_ext v0,v0,0x18,0x8
addiu a3,t0,0x4
sb t3,0x0(t0)
sb t2,0x1(t0)
sb t1,0x2(t0)
sb v0,0x3(t0)
lw v0,0x2d0(s2)
lw t0,0x34(v0)
beq t0,a1,0x00166d70
_nop
mtc1 zero,f0
mthc1 zero,f0
ldc1 f4,0x48(s7)
lw t3,0x44(s7)
ldc1 f2,0x10(s7)
madd.D f0,f2,f0,f4
cvt.s.D f0,f0
mfc1 v0,f0
andi t2,v0,0xff
ext t1,v0,0x8,0x8
ext t0,v0,0x10,0x8
beq t3,v1,0x00166d58
_ext v0,v0,0x18,0x8
addiu s6,a3,0x4
sb t2,0x0(a3)
sb t1,0x1(a3)
sb t0,0x2(a3)
sb v0,0x3(a3)
lw v0,0x2c0(s2)
addiu a0,a0,0x1
lw a3,0x28(s7)
sll v0,v0,0x2
addu s6,s6,a3
beq a0,s4,0x00164fd0
_addu s8,s8,v0
lw v0,0x2d0(s2)
ldc1 f4,0x48(s7)
lw t2,0x44(s7)
ldc1 f2,0x10(s7)
lw v0,0x8(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
cvt.d.S f0,f0
madd.D f0,f2,f0,f4
cvt.s.D f0,f0
mfc1 v0,f0
andi t1,v0,0xff
ext t0,v0,0x8,0x8
ext a3,v0,0x10,0x8
bne t2,v1,0x00166880
_ext v0,v0,0x18,0x8
sb v0,0x0(s6)
sb a3,0x1(s6)
sb t0,0x2(s6)
b 0x00166890
_sb t1,0x3(s6)
blez a3,0x00164fd0
_lw v0,-0x7fd0(gp)
or a1,zero,zero
li a0,0x1
li a3,0x4
b 0x00166bcc
_lwc1 f6,0x1a50(v0)
sb t6,0x0(s6)
sb t5,0x1(s6)
sb t4,0x2(s6)
sb v1,0x3(s6)
sb t2,0x4(s6)
sb t1,0x5(s6)
sb t0,0x6(s6)
sb v0,0x7(s6)
lw v0,0x2d0(s2)
ldc1 f4,0x48(s7)
lw t1,0x44(s7)
ldc1 f2,0x10(s7)
lw v0,0x14(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
cvt.d.S f0,f0
madd.D f0,f2,f0,f4
mfc1 v1,f0
mfhc1 v0,f0
andi t6,v1,0xff
ext t5,v1,0x8,0x8
ext t4,v1,0x10,0x8
andi t3,v0,0xff
ext t2,v0,0x8,0x8
ext t0,v0,0x10,0x8
ext v1,v1,0x18,0x8
beq t1,a0,0x00166d30
_ext v0,v0,0x18,0x8
addiu t1,s6,0x10
sb t6,0x8(s6)
sb t5,0x9(s6)
sb t4,0xa(s6)
sb v1,0xb(s6)
sb t3,0xc(s6)
sb t2,0xd(s6)
sb t0,0xe(s6)
sb v0,0xf(s6)
lw v0,0x2d0(s2)
ldc1 f4,0x48(s7)
lw t0,0x44(s7)
ldc1 f2,0x10(s7)
lw v0,0x20(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
cvt.d.S f0,f0
madd.D f0,f2,f0,f4
mfc1 v1,f0
mfhc1 v0,f0
andi t7,v1,0xff
ext t6,v1,0x8,0x8
ext t5,v1,0x10,0x8
andi t4,v0,0xff
ext t3,v0,0x8,0x8
ext t2,v0,0x10,0x8
ext v1,v1,0x18,0x8
beq t0,a0,0x00166d08
_ext v0,v0,0x18,0x8
addiu t0,t1,0x8
sb t7,0x0(t1)
sb t6,0x1(t1)
sb t5,0x2(t1)
sb v1,0x3(t1)
sb t4,0x4(t1)
sb t3,0x5(t1)
sb t2,0x6(t1)
sb v0,0x7(t1)
lw v0,0x2d0(s2)
lw v1,0x34(v0)
beq v1,a3,0x00166cec
_nop
mtc1 zero,f0
mthc1 zero,f0
ldc1 f4,0x48(s7)
lw t7,0x44(s7)
ldc1 f2,0x10(s7)
madd.D f0,f2,f0,f4
mfc1 v1,f0
mfhc1 v0,f0
andi t6,v1,0xff
ext t5,v1,0x8,0x8
ext t4,v1,0x10,0x8
andi t3,v0,0xff
ext t2,v0,0x8,0x8
ext t1,v0,0x10,0x8
ext v1,v1,0x18,0x8
beq t7,a0,0x00166cc4
_ext v0,v0,0x18,0x8
addiu s6,t0,0x8
sb t6,0x0(t0)
sb t5,0x1(t0)
sb t4,0x2(t0)
sb v1,0x3(t0)
sb t3,0x4(t0)
sb t2,0x5(t0)
sb t1,0x6(t0)
sb v0,0x7(t0)
lw v0,0x2c0(s2)
addiu a1,a1,0x1
lw v1,0x28(s7)
sll v0,v0,0x2
addu s6,s6,v1
beq a1,s4,0x00164fd0
_addu s8,s8,v0
lw v0,0x2d0(s2)
ldc1 f4,0x48(s7)
lw t3,0x44(s7)
ldc1 f2,0x10(s7)
lw v0,0x8(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
cvt.d.S f0,f0
madd.D f0,f2,f0,f4
mfc1 v1,f0
mfhc1 v0,f0
andi t6,v1,0xff
ext t5,v1,0x8,0x8
ext t4,v1,0x10,0x8
andi t2,v0,0xff
ext t1,v0,0x8,0x8
ext t0,v0,0x10,0x8
ext v1,v1,0x18,0x8
bne t3,a0,0x00166a28
_ext v0,v0,0x18,0x8
sb v0,0x0(s6)
sb t0,0x1(s6)
sb t1,0x2(s6)
sb t2,0x3(s6)
sb v1,0x4(s6)
sb t4,0x5(s6)
sb t5,0x6(s6)
b 0x00166a48
_sb t6,0x7(s6)
lw v0,0x38(s5)
lwc1 f2,0x68(sp)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
sub.S S f0,f2,f0
c.un.S f0,f0
bc1t 0x2,0x00166640
_mtc1 zero,f2
c.le.S f0,f2
bc1t 0x3,0x00166640
_ldc1 f2,0x38(sp)
cvt.d.S f0,f0
mul.D f0,f0,f2
ldc1 f2,0x40(sp)
div.D f0,f0,f2
ldc1 f2,0x48(sp)
c.le.D f2,f0
bc1t 0x4,0x00166e28
_lw v0,0x50(sp)
lw t9,-0x7f5c(gp)
ldc1 f12,0x1400(v0)
jalr t9
_add.D f12,f0,f12
b 0x00166644
_lw gp,0x10(sp)
b 0x00166390
_or v1,zero,zero
b 0x0016658c
_or v1,zero,zero
b 0x0016648c
_or v1,zero,zero
sb v0,0x0(t0)
addiu s6,t0,0x8
sb t1,0x1(t0)
sb t2,0x2(t0)
sb t3,0x3(t0)
sb v1,0x4(t0)
sb t4,0x5(t0)
sb t5,0x6(t0)
b 0x00166bb0
_sb t6,0x7(t0)
lw v0,0x38(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
sub.S S f0,f6,f0
b 0x00166b50
_cvt.d.S f0,f0
sb v0,0x0(t1)
addiu t0,t1,0x8
sb t2,0x1(t1)
sb t3,0x2(t1)
sb t4,0x3(t1)
sb v1,0x4(t1)
sb t5,0x5(t1)
sb t6,0x6(t1)
b 0x00166b38
_sb t7,0x7(t1)
sb v0,0x8(s6)
addiu t1,s6,0x10
sb t0,0x9(s6)
sb t2,0xa(s6)
sb t3,0xb(s6)
sb v1,0xc(s6)
sb t4,0xd(s6)
sb t5,0xe(s6)
b 0x00166ac0
_sb t6,0xf(s6)
sb v0,0x0(a3)
addiu s6,a3,0x4
sb t0,0x1(a3)
sb t1,0x2(a3)
b 0x00166998
_sb t2,0x3(a3)
lw v0,0x38(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
sub.S S f0,f6,f0
b 0x00166958
_cvt.d.S f0,f0
sb v0,0x0(t0)
addiu a3,t0,0x4
sb t1,0x1(t0)
sb t2,0x2(t0)
b 0x00166940
_sb t3,0x3(t0)
sb v0,0x4(s6)
addiu t0,s6,0x8
sb a3,0x5(s6)
sb t1,0x6(s6)
b 0x001668e8
_sb t2,0x7(s6)
sb v0,0x0(t4)
addiu s6,t4,0x2
b 0x00166808
_sb v1,0x1(t4)
lw v0,0x38(v0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f12,0x0(v0)
sub.S S f12,f6,f12
cvt.d.S f12,f12
mul.D f12,f12,f8
b 0x001667e4
_cvt.s.D f12,f12
sb v0,0x0(t3)
addiu t4,t3,0x2
b 0x001667d0
_sb v1,0x1(t3)
sb v0,0x2(s6)
addiu t3,s6,0x4
b 0x00166790
_sb v1,0x3(s6)
b 0x0016658c
_li v1,-0x1
b 0x0016648c
_li v1,-0x1
b 0x00166390
_li v1,-0x1
b 0x00166644
_li v1,-0x1
lw v0,0x14(s5)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f12,0x0(v0)
c.un.S f12,f12
bc1f 0x1,0x00166458
_mtc1 zero,f0
b 0x0016649c
_or v1,zero,zero
lw v1,0x34(s5)
li v0,0x4
beq v1,v0,0x00166c44
_or v1,zero,zero
b 0x00166650
_nop
lw v0,0x20(s5)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f12,0x0(v0)
c.un.S f12,f12
bc1f 0x2,0x00166550
_mtc1 zero,f0
b 0x0016659c
_or v1,zero,zero
blez a3,0x00164fd0
_lw v0,-0x7fc4(gp)
or s3,zero,zero
lw v1,-0x7fd0(gp)
ldc1 f24,-0x7538(v0)
lw v0,-0x7fd0(gp)
ldc1 f26,0x1400(v1)
sw v1,0x58(sp)
ldc1 f22,0x1a58(v0)
lw v0,-0x7fd0(gp)
ldc1 f20,0x1a60(v0)
mov.D f28,f24
lw v0,-0x7fd0(gp)
sdc1 f26,0x60(sp)
lwc1 f0,0x1a50(v0)
mov.D f30,f22
sdc1 f24,0x28(sp)
sdc1 f20,0x20(sp)
sdc1 f22,0x30(sp)
swc1 f0,0x70(sp)
sdc1 f20,0x38(sp)
sdc1 f26,0x68(sp)
sdc1 f24,0x40(sp)
sdc1 f22,0x48(sp)
sdc1 f20,0x50(sp)
lw a0,0x2d0(s2)
lw v0,0x8(a0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f12,0x0(v0)
c.un.S f12,f12
bc1t 0x5,0x001673c8
_mtc1 zero,f0
c.le.S f12,f0
bc1t 0x6,0x00166f4c
_or v1,zero,zero
cvt.d.S f12,f12
mul.D f12,f12,f24
div.D f12,f12,f22
c.le.D f20,f12
bc1t 0x7,0x001673e8
_lw t9,-0x7f5c(gp)
add.D f12,f12,f26
jalr t9
_sw a0,0x18(sp)
lw gp,0x10(sp)
lw a0,0x18(sp)
lw s5,0x54(s7)
bne s5,zero,0x00166f60
_li v0,0x20
li s5,0x20
sw v0,0x54(s7)
blez s0,0x00167010
_or s1,s0,zero
li t0,0x20
li t1,0x1
sltu v0,s5,s1
lw t2,0x58(s7)
or a0,s5,zero
lw t3,0x50(s7)
movz a0,s1,v0
subu a3,s0,s1
subu a1,t0,s5
srlv a3,v1,a3
or v0,a0,zero
sll a0,a0,0x2
subu s5,s5,v0
addu a0,t2,a0
subu s1,s1,v0
lw v0,0x0(a0)
sw s5,0x54(s7)
and v0,a3,v0
sllv v0,v0,a1
or v0,v0,t3
bne s5,zero,0x00167000
_sw v0,0x50(s7)
lw t3,0x44(s7)
srl t2,v0,0x18
ext a3,v0,0x10,0x8
ext a1,v0,0x8,0x8
addiu a0,s6,0x4
beq t3,t1,0x00167390
_andi v0,v0,0xff
sb t2,0x0(s6)
sb a3,0x1(s6)
sb a1,0x2(s6)
sb v0,0x3(s6)
lw s0,0x0(s7)
li s5,0x20
sw zero,0x50(s7)
or s6,a0,zero
sw t0,0x54(s7)
bgtz s1,0x00166f74
_sltu v0,s5,s1
lw a0,0x2d0(s2)
or s1,s0,zero
lw v0,0x14(a0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f12,0x0(v0)
c.un.S f12,f12
bc1t 0x001673c0
_mtc1 zero,f0
c.le.S f12,f0
bc1t 0x1,0x001673c0
_ldc1 f0,0x20(sp)
cvt.d.S f12,f12
mul.D f12,f12,f28
div.D f12,f12,f30
c.le.D f0,f12
bc1t 0x2,0x001673e0
_ldc1 f0,0x60(sp)
lw t9,-0x7f5c(gp)
sw a0,0x18(sp)
jalr t9
_add.D f12,f12,f0
lw gp,0x10(sp)
lw a0,0x18(sp)
blez s0,0x00167114
_sltu v0,s5,s1
li t0,0x20
li t1,0x1
lw t2,0x58(s7)
or a0,s5,zero
lw t3,0x50(s7)
movz a0,s1,v0
subu a3,s0,s1
subu a1,t0,s5
srlv a3,v1,a3
or v0,a0,zero
sll a0,a0,0x2
subu s5,s5,v0
addu a0,t2,a0
subu s1,s1,v0
lw v0,0x0(a0)
sw s5,0x54(s7)
and v0,a3,v0
sllv v0,v0,a1
or v0,v0,t3
bne s5,zero,0x00167104
_sw v0,0x50(s7)
lw t3,0x44(s7)
srl t2,v0,0x18
ext a3,v0,0x10,0x8
ext a1,v0,0x8,0x8
addiu a0,s6,0x4
beq t3,t1,0x001673a4
_andi v0,v0,0xff
sb t2,0x0(s6)
sb a3,0x1(s6)
sb a1,0x2(s6)
sb v0,0x3(s6)
lw s0,0x0(s7)
li s5,0x20
sw zero,0x50(s7)
or s6,a0,zero
sw t0,0x54(s7)
bgtz s1,0x00167078
_sltu v0,s5,s1
lw a0,0x2d0(s2)
or s1,s0,zero
lw v0,0x20(a0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f12,0x0(v0)
c.un.S f12,f12
bc1t 0x3,0x001673b8
_mtc1 zero,f0
c.le.S f12,f0
bc1t 0x4,0x001673b8
_ldc1 f0,0x28(sp)
cvt.d.S f12,f12
mul.D f12,f12,f0
ldc1 f0,0x30(sp)
div.D f12,f12,f0
ldc1 f0,0x38(sp)
c.le.D f0,f12
bc1t 0x5,0x001673d0
_ldc1 f0,0x68(sp)
lw t9,-0x7f5c(gp)
sw a0,0x18(sp)
jalr t9
_add.D f12,f12,f0
lw gp,0x10(sp)
lw a0,0x18(sp)
blez s0,0x00167220
_sltu a3,s5,s1
li t0,0x20
li t1,0x1
lw t2,0x58(s7)
or v0,s5,zero
lw t3,0x50(s7)
movz v0,s1,a3
subu a1,s0,s1
subu a0,t0,s5
srlv a1,v1,a1
or a3,v0,zero
sll v0,v0,0x2
subu s5,s5,a3
addu v0,t2,v0
subu s1,s1,a3
lw v0,0x0(v0)
sw s5,0x54(s7)
and v0,a1,v0
sllv v0,v0,a0
or v0,v0,t3
bne s5,zero,0x00167210
_sw v0,0x50(s7)
lw t3,0x44(s7)
srl t2,v0,0x18
ext a3,v0,0x10,0x8
ext a1,v0,0x8,0x8
addiu a0,s6,0x4
beq t3,t1,0x0016737c
_andi v0,v0,0xff
sb t2,0x0(s6)
sb a3,0x1(s6)
sb a1,0x2(s6)
sb v0,0x3(s6)
lw s0,0x0(s7)
li s5,0x20
sw zero,0x50(s7)
or s6,a0,zero
sw t0,0x54(s7)
bgtz s1,0x00167184
_sltu a3,s5,s1
lw a0,0x2d0(s2)
or s1,s0,zero
lw v1,0x34(a0)
li v0,0x4
beq v1,v0,0x00167304
_lwc1 f2,0x70(sp)
or v1,zero,zero
blez s0,0x001672e0
_nop
li t0,0x20
b 0x0016724c
_li t2,0x1
lw s0,0x0(s7)
lw a1,0x54(s7)
subu s0,s0,s1
lw t1,0x58(s7)
srlv s0,v1,s0
lw t3,0x50(s7)
sltu a3,a1,s1
or v0,a1,zero
movz v0,s1,a3
subu a0,t0,a1
or a3,v0,zero
sll v0,v0,0x2
subu a1,a1,a3
addu v0,t1,v0
subu s1,s1,a3
lw v0,0x0(v0)
sw a1,0x54(s7)
and s0,s0,v0
sllv s0,s0,a0
or v0,s0,t3
bne a1,zero,0x001672d8
_sw v0,0x50(s7)
lw t3,0x44(s7)
srl t1,v0,0x18
ext a3,v0,0x10,0x8
ext a1,v0,0x8,0x8
addiu a0,s6,0x4
beq t3,t2,0x00167368
_andi v0,v0,0xff
sb t1,0x0(s6)
sb a3,0x1(s6)
sb a1,0x2(s6)
sb v0,0x3(s6)
sw zero,0x50(s7)
or s6,a0,zero
sw t0,0x54(s7)
bgtz s1,0x00167248
_nop
lw v0,0x2c0(s2)
addiu s3,s3,0x1
lw v1,0x28(s7)
sll v0,v0,0x2
addu s6,s6,v1
beq s3,s4,0x00164fd0
_addu s8,s8,v0
b 0x00166ef4
_lw s0,0x0(s7)
lw v0,0x38(a0)
sll v0,v0,0x2
addu v0,s8,v0
lwc1 f0,0x0(v0)
sub.S S f0,f2,f0
c.un.S f0,f0
bc1t 0x6,0x00167230
_mtc1 zero,f2
c.le.S f0,f2
bc1t 0x7,0x00167230
_ldc1 f2,0x40(sp)
cvt.d.S f0,f0
mul.D f0,f0,f2
ldc1 f2,0x48(sp)
div.D f0,f0,f2
ldc1 f2,0x50(sp)
c.le.D f2,f0
bc1t 0x001673d8
_lw v0,0x58(sp)
lw t9,-0x7f5c(gp)
ldc1 f12,0x1400(v0)
jalr t9
_add.D f12,f0,f12
b 0x00167234
_lw gp,0x10(sp)
sb v0,0x0(s6)
sb a1,0x1(s6)
sb a3,0x2(s6)
b 0x001672cc
_sb t1,0x3(s6)
sb v0,0x0(s6)
sb a1,0x1(s6)
sb a3,0x2(s6)
b 0x001671fc
_sb t2,0x3(s6)
sb v0,0x0(s6)
sb a1,0x1(s6)
sb a3,0x2(s6)
b 0x00166fec
_sb t2,0x3(s6)
sb v0,0x0(s6)
sb a1,0x1(s6)
sb a3,0x2(s6)
b 0x001670f0
_sb t2,0x3(s6)
b 0x00167174
_or v1,zero,zero
b 0x00167068
_or v1,zero,zero
b 0x00166f4c
_or v1,zero,zero
b 0x00167174
_li v1,-0x1
b 0x00167234
_li v1,-0x1
b 0x00167068
_li v1,-0x1
b 0x00166f4c
_li v1,-0x1
lw a3,-0x7fc4(gp)
li a2,0x386
lw a1,-0x7fc4(gp)
lw a0,-0x7fd0(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x75c0
addiu a1,a1,-0x7af0
jalr t9
_addiu a0,a0,0x294c
lw a3,-0x7fc4(gp)
li a2,0x385
lw a1,-0x7fc4(gp)
lw a0,-0x7fd0(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x75c0
addiu a1,a1,-0x7af0
jalr t9
_addiu a0,a0,0x1cac
(translation_unit "void FUN_00164d40(int param_1,uint *param_2,undefined4 param_3,int param_4,int param_5,byte *param_6\n                 ,int param_7)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar6;\n  undefined2 uVar5;\n  int iVar7;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  uint uVar8;\n  uint extraout_v1_02;\n  uint extraout_v1_03;\n  uint extraout_v1_04;\n  uint uVar9;\n  uint extraout_v1_05;\n  uint extraout_v1_06;\n  uint extraout_v1_07;\n  uint extraout_v1_08;\n  uint extraout_v1_09;\n  byte bVar12;\n  byte bVar13;\n  uint uVar10;\n  byte *pbVar11;\n  byte bVar14;\n  uint uVar15;\n  uint uVar16;\n  byte bVar17;\n  byte bVar18;\n  byte bVar19;\n  byte bVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  int iVar24;\n  double dVar25;\n  float fVar31;\n  double dVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  float fVar32;\n  double dVar30;\n  double extraout_f0_1;\n  float fVar33;\n  ulonglong uVar34;\n  ulonglong uVar35;\n  undefined8 uVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  undefined8 uVar43;\n  int local_c0;\n  uint local_b8;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar3 = PTR_s_t_to_left_003a88e4;\n  puVar2 = PTR_LAB_003a88e0;\n  if (param_7 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  if (*(int *)(param_7 + 0x1c) != -0x54535255) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  uVar21 = *param_2;\n  if (uVar21 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (param_4 < 1) {\n      return;\n    }\n    iVar22 = 0;\n    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar21 < 0x11) {\n    if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }\n  uVar8 = 0;\n  if (uVar21 < 0x41) {\n    uVar8 = uVar21;\n  }\n  uVar8 = uVar8 - 1;\n  uVar15 = 2 << (uVar8 & 0x1f);\n  uVar9 = uVar15;\n  uVar23 = 1 >> (~uVar8 & 0x1f);\n  if ((uVar8 & 0x20) != 0) {\n    uVar9 = 0;\n    uVar23 = uVar15;\n  }\n  local_b8 = uVar9 - 1;\n  local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1);\nLAB_0016507c:\n  if (param_4 < 1) {\n    return;\n  }\n  uVar36 = 0;\n  iVar24 = *(int *)(param_1 + 0x2d0);\n  iVar22 = 0;\n  dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n  dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n  dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n  fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n  dVar25 = dVar29;\n  dVar26 = dVar39;\n  dVar27 = dVar37;\n  dVar28 = dVar29;\n  if (!NAN(fVar33)) goto LAB_001650f0;\nLAB_00165520:\n  do {\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  } while (NAN(fVar33));\nLAB_001650f0:\n  if (fVar33 <= (float)uVar36) goto LAB_00165520;\n  dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n  dVar38 = (dVar38 * (double)fVar33) / dVar26;\n  if (dVar38 < dVar25) {\n    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);\n  }\n  else {\n    uVar43 = 0xffffffffffffffff;\n  }\n  goto LAB_00165130;\n}\n\n" (function_definition "void FUN_00164d40(int param_1,uint *param_2,undefined4 param_3,int param_4,int param_5,byte *param_6\n                 ,int param_7)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar6;\n  undefined2 uVar5;\n  int iVar7;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  uint uVar8;\n  uint extraout_v1_02;\n  uint extraout_v1_03;\n  uint extraout_v1_04;\n  uint uVar9;\n  uint extraout_v1_05;\n  uint extraout_v1_06;\n  uint extraout_v1_07;\n  uint extraout_v1_08;\n  uint extraout_v1_09;\n  byte bVar12;\n  byte bVar13;\n  uint uVar10;\n  byte *pbVar11;\n  byte bVar14;\n  uint uVar15;\n  uint uVar16;\n  byte bVar17;\n  byte bVar18;\n  byte bVar19;\n  byte bVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  int iVar24;\n  double dVar25;\n  float fVar31;\n  double dVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  float fVar32;\n  double dVar30;\n  double extraout_f0_1;\n  float fVar33;\n  ulonglong uVar34;\n  ulonglong uVar35;\n  undefined8 uVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  undefined8 uVar43;\n  int local_c0;\n  uint local_b8;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar3 = PTR_s_t_to_left_003a88e4;\n  puVar2 = PTR_LAB_003a88e0;\n  if (param_7 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  if (*(int *)(param_7 + 0x1c) != -0x54535255) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  uVar21 = *param_2;\n  if (uVar21 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (param_4 < 1) {\n      return;\n    }\n    iVar22 = 0;\n    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar21 < 0x11) {\n    if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }\n  uVar8 = 0;\n  if (uVar21 < 0x41) {\n    uVar8 = uVar21;\n  }\n  uVar8 = uVar8 - 1;\n  uVar15 = 2 << (uVar8 & 0x1f);\n  uVar9 = uVar15;\n  uVar23 = 1 >> (~uVar8 & 0x1f);\n  if ((uVar8 & 0x20) != 0) {\n    uVar9 = 0;\n    uVar23 = uVar15;\n  }\n  local_b8 = uVar9 - 1;\n  local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1);\nLAB_0016507c:\n  if (param_4 < 1) {\n    return;\n  }\n  uVar36 = 0;\n  iVar24 = *(int *)(param_1 + 0x2d0);\n  iVar22 = 0;\n  dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n  dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n  dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n  fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n  dVar25 = dVar29;\n  dVar26 = dVar39;\n  dVar27 = dVar37;\n  dVar28 = dVar29;\n  if (!NAN(fVar33)) goto LAB_001650f0;\nLAB_00165520:\n  do {\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  } while (NAN(fVar33));\nLAB_001650f0:\n  if (fVar33 <= (float)uVar36) goto LAB_00165520;\n  dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n  dVar38 = (dVar38 * (double)fVar33) / dVar26;\n  if (dVar38 < dVar25) {\n    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);\n  }\n  else {\n    uVar43 = 0xffffffffffffffff;\n  }\n  goto LAB_00165130;\n}" primitive_type (function_declarator "FUN_00164d40(int param_1,uint *param_2,undefined4 param_3,int param_4,int param_5,byte *param_6\n                 ,int param_7)" identifier (parameter_list "(int param_1,uint *param_2,undefined4 param_3,int param_4,int param_5,byte *param_6\n                 ,int param_7)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "byte *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int param_7" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar6;\n  undefined2 uVar5;\n  int iVar7;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  uint uVar8;\n  uint extraout_v1_02;\n  uint extraout_v1_03;\n  uint extraout_v1_04;\n  uint uVar9;\n  uint extraout_v1_05;\n  uint extraout_v1_06;\n  uint extraout_v1_07;\n  uint extraout_v1_08;\n  uint extraout_v1_09;\n  byte bVar12;\n  byte bVar13;\n  uint uVar10;\n  byte *pbVar11;\n  byte bVar14;\n  uint uVar15;\n  uint uVar16;\n  byte bVar17;\n  byte bVar18;\n  byte bVar19;\n  byte bVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  int iVar24;\n  double dVar25;\n  float fVar31;\n  double dVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  float fVar32;\n  double dVar30;\n  double extraout_f0_1;\n  float fVar33;\n  ulonglong uVar34;\n  ulonglong uVar35;\n  undefined8 uVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  undefined8 uVar43;\n  int local_c0;\n  uint local_b8;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar3 = PTR_s_t_to_left_003a88e4;\n  puVar2 = PTR_LAB_003a88e0;\n  if (param_7 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  if (*(int *)(param_7 + 0x1c) != -0x54535255) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  uVar21 = *param_2;\n  if (uVar21 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (param_4 < 1) {\n      return;\n    }\n    iVar22 = 0;\n    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar21 < 0x11) {\n    if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }\n  uVar8 = 0;\n  if (uVar21 < 0x41) {\n    uVar8 = uVar21;\n  }\n  uVar8 = uVar8 - 1;\n  uVar15 = 2 << (uVar8 & 0x1f);\n  uVar9 = uVar15;\n  uVar23 = 1 >> (~uVar8 & 0x1f);\n  if ((uVar8 & 0x20) != 0) {\n    uVar9 = 0;\n    uVar23 = uVar15;\n  }\n  local_b8 = uVar9 - 1;\n  local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1);\nLAB_0016507c:\n  if (param_4 < 1) {\n    return;\n  }\n  uVar36 = 0;\n  iVar24 = *(int *)(param_1 + 0x2d0);\n  iVar22 = 0;\n  dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n  dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n  dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n  fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n  dVar25 = dVar29;\n  dVar26 = dVar39;\n  dVar27 = dVar37;\n  dVar28 = dVar29;\n  if (!NAN(fVar33)) goto LAB_001650f0;\nLAB_00165520:\n  do {\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  } while (NAN(fVar33));\nLAB_001650f0:\n  if (fVar33 <= (float)uVar36) goto LAB_00165520;\n  dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n  dVar38 = (dVar38 * (double)fVar33) / dVar26;\n  if (dVar38 < dVar25) {\n    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);\n  }\n  else {\n    uVar43 = 0xffffffffffffffff;\n  }\n  goto LAB_00165130;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "undefined2 uVar5;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int extraout_v1_00;" primitive_type identifier ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint extraout_v1_02;" type_identifier identifier ;) (declaration "uint extraout_v1_03;" type_identifier identifier ;) (declaration "uint extraout_v1_04;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint extraout_v1_05;" type_identifier identifier ;) (declaration "uint extraout_v1_06;" type_identifier identifier ;) (declaration "uint extraout_v1_07;" type_identifier identifier ;) (declaration "uint extraout_v1_08;" type_identifier identifier ;) (declaration "uint extraout_v1_09;" type_identifier identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "double dVar25;" primitive_type identifier ;) (declaration "float fVar31;" primitive_type identifier ;) (declaration "double dVar26;" primitive_type identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "double dVar28;" primitive_type identifier ;) (declaration "double dVar29;" primitive_type identifier ;) (declaration "float fVar32;" primitive_type identifier ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "double extraout_f0_1;" primitive_type identifier ;) (declaration "float fVar33;" primitive_type identifier ;) (declaration "ulonglong uVar34;" type_identifier identifier ;) (declaration "ulonglong uVar35;" type_identifier identifier ;) (declaration "undefined8 uVar36;" type_identifier identifier ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "double dVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "undefined8 uVar43;" type_identifier identifier ;) (declaration "int local_c0;" primitive_type identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (expression_statement "puVar4 = PTR_s_courses_003a88ec;" (assignment_expression "puVar4 = PTR_s_courses_003a88ec" identifier = identifier) ;) (expression_statement "puVar3 = PTR_s_t_to_left_003a88e4;" (assignment_expression "puVar3 = PTR_s_t_to_left_003a88e4" identifier = identifier) ;) (expression_statement "puVar2 = PTR_LAB_003a88e0;" (assignment_expression "puVar2 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if (param_7 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" if (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1cac" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x7af0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x75c0" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(param_7 + 0x1c) != -0x54535255) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" if (parenthesized_expression "(*(int *)(param_7 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_7 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_7 + 0x1c)" * (cast_expression "(int *)(param_7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x1c)" ( (binary_expression "param_7 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0)" ( (binary_expression "PTR_LAB_003a88e0 + 0x294c" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x7af0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x75c0" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (uVar21 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (param_4 < 1) {\n      return;\n    }\n    iVar22 = 0;\n    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );\n  }" if (parenthesized_expression "(uVar21 == 0x10)" ( (binary_expression "uVar21 == 0x10" identifier == number_literal) )) (compound_statement "{\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (param_4 < 1) {\n      return;\n    }\n    iVar22 = 0;\n    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );\n  }" { (if_statement "if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\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_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }" { (if_statement "if (param_4 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) (expression_statement "iVar24 = 4;" (assignment_expression "iVar24 = 4" identifier = number_literal) ;) (expression_statement "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);" (assignment_expression "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1440)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1440)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1440" identifier + number_literal) ))))) ;) (expression_statement "uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar26 = dVar25;" (assignment_expression "dVar26 = dVar25" identifier = identifier) ;) (expression_statement "dVar27 = dVar25;" (assignment_expression "dVar27 = dVar25" identifier = identifier) ;) (expression_statement "dVar28 = dVar25;" (assignment_expression "dVar28 = dVar25" identifier = identifier) ;) (do_statement "do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);" do (compound_statement "{\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      }" { (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25" identifier = (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * identifier)) ;) (expression_statement "uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));" (assignment_expression "uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" identifier = (call_expression "FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" identifier (argument_list "(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" ( (call_expression "CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" identifier (argument_list "((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" ( (cast_expression "(int)((ulonglong)dVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar25 >> 0x20)" ( (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(float)dVar25" ( (type_descriptor "float" primitive_type) ) identifier) ))) )))) ;) (expression_statement "bVar13 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar13 = (byte)((ushort)uVar5 >> 8)" identifier = (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar5 >> 8)" ( (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" if (parenthesized_expression "(param_2[0x11] == uVar21)" ( (binary_expression "param_2[0x11] == uVar21" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }" { (expression_statement "*param_6 = (byte)uVar5;" (assignment_expression "*param_6 = (byte)uVar5" (pointer_expression "*param_6" * identifier) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" else (compound_statement "{\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" { (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = (byte)uVar5;" (assignment_expression "param_6[1] = (byte)uVar5" (subscript_expression "param_6[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27" identifier = (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * identifier)) ;) (expression_statement "uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));" (assignment_expression "uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" identifier = (call_expression "FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" identifier (argument_list "(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" ( (call_expression "CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" identifier (argument_list "((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" ( (cast_expression "(int)((ulonglong)dVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar25 >> 0x20)" ( (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(float)dVar25" ( (type_descriptor "float" primitive_type) ) identifier) ))) )))) ;) (expression_statement "bVar13 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar13 = (byte)((ushort)uVar5 >> 8)" identifier = (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar5 >> 8)" ( (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }" if (parenthesized_expression "(param_2[0x11] == uVar21)" ( (binary_expression "param_2[0x11] == uVar21" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }" { (expression_statement "param_6[2] = (byte)uVar5;" (assignment_expression "param_6[2] = (byte)uVar5" (subscript_expression "param_6[2]" identifier [ number_literal ]) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[3] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }" else (compound_statement "{\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }" { (expression_statement "param_6[2] = bVar13;" (assignment_expression "param_6[2] = bVar13" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = (byte)uVar5;" (assignment_expression "param_6[3] = (byte)uVar5" (subscript_expression "param_6[3]" identifier [ number_literal ]) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "param_6 = param_6 + 4;" (assignment_expression "param_6 = param_6 + 4" identifier = (binary_expression "param_6 + 4" identifier + number_literal)) ;) (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26" identifier = (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * identifier)) ;) (expression_statement "uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);" (assignment_expression "uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" identifier = (call_expression "CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" identifier (argument_list "((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" ( (cast_expression "(int)((ulonglong)dVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar25 >> 0x20)" ( (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(float)dVar25" ( (type_descriptor "float" primitive_type) ) identifier) )))) ;) (expression_statement "uVar5 = FUN_00155b60(uVar35);" (assignment_expression "uVar5 = FUN_00155b60(uVar35)" identifier = (call_expression "FUN_00155b60(uVar35)" identifier (argument_list "(uVar35)" ( identifier )))) ;) (expression_statement "bVar13 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar13 = (byte)((ushort)uVar5 >> 8)" identifier = (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar5 >> 8)" ( (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" if (parenthesized_expression "(param_2[0x11] == uVar21)" ( (binary_expression "param_2[0x11] == uVar21" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }" { (expression_statement "*param_6 = (byte)uVar5;" (assignment_expression "*param_6 = (byte)uVar5" (pointer_expression "*param_6" * identifier) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" else (compound_statement "{\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" { (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = (byte)uVar5;" (assignment_expression "param_6[1] = (byte)uVar5" (subscript_expression "param_6[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "param_6 = param_6 + 2;" (assignment_expression "param_6 = param_6 + 2" identifier = (binary_expression "param_6 + 2" identifier + number_literal)) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) == identifier) )) (compound_statement "{\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }" { (expression_statement "dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;" (assignment_expression "dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28" identifier = (binary_expression "(double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28" (cast_expression "(double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" ( (binary_expression "(float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (cast_expression "(float)uVar34" ( (type_descriptor "float" primitive_type) ) identifier) - (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ))) * identifier)) ;) (expression_statement "uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);" (assignment_expression "uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" identifier = (call_expression "CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" identifier (argument_list "((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" ( (cast_expression "(int)((ulonglong)dVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar25 >> 0x20)" ( (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(float)dVar25" ( (type_descriptor "float" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }" else (compound_statement "{\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }" { (expression_statement "uVar35 = uVar35 & 0xffffffff00000000;" (assignment_expression "uVar35 = uVar35 & 0xffffffff00000000" identifier = (binary_expression "uVar35 & 0xffffffff00000000" identifier & number_literal)) ;) }))) (expression_statement "uVar5 = FUN_00155b60(uVar35);" (assignment_expression "uVar5 = FUN_00155b60(uVar35)" identifier = (call_expression "FUN_00155b60(uVar35)" identifier (argument_list "(uVar35)" ( identifier )))) ;) (expression_statement "bVar13 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar13 = (byte)((ushort)uVar5 >> 8)" identifier = (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar5 >> 8)" ( (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" if (parenthesized_expression "(param_2[0x11] == uVar21)" ( (binary_expression "param_2[0x11] == uVar21" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }" { (expression_statement "*param_6 = (byte)uVar5;" (assignment_expression "*param_6 = (byte)uVar5" (pointer_expression "*param_6" * identifier) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" else (compound_statement "{\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" { (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = (byte)uVar5;" (assignment_expression "param_6[1] = (byte)uVar5" (subscript_expression "param_6[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10] + 2;" (assignment_expression "param_6 = param_6 + param_2[10] + 2" identifier = (binary_expression "param_6 + param_2[10] + 2" (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "dVar25 = extraout_f0_1;" (assignment_expression "dVar25 = extraout_f0_1" identifier = identifier) ;) }) while (parenthesized_expression "(iVar22 != param_4)" ( (binary_expression "iVar22 != param_4" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if (param_4 < 1) {\n      return;\n    }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (do_statement "do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );" do (compound_statement "{\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }" { (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x11] != 1) goto LAB_00165b70;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165b70;" goto statement_identifier ;)) (labeled_statement "LAB_00165d84:\n        *param_6 = bVar12;" statement_identifier : (expression_statement "*param_6 = bVar12;" (assignment_expression "*param_6 = bVar12" (pointer_expression "*param_6" * identifier) = identifier) ;)) (expression_statement "param_6[1] = bVar14;" (assignment_expression "param_6[1] = bVar14" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }" else (compound_statement "{\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }" { (if_statement "if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" if (parenthesized_expression "(fVar33 < fVar31)" ( (binary_expression "fVar33 < fVar31" identifier < identifier) )) (compound_statement "{\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }" { (expression_statement "dVar27 = (double)fVar33 + dVar26;" (assignment_expression "dVar27 = (double)fVar33 + dVar26" identifier = (binary_expression "(double)fVar33 + dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }" if (parenthesized_expression "(dVar25 <= dVar27)" ( (binary_expression "dVar25 <= dVar27" identifier <= identifier) )) (compound_statement "{\n            dVar27 = dVar27 - dVar25;\n          }" { (expression_statement "dVar27 = dVar27 - dVar25;" (assignment_expression "dVar27 = dVar27 - dVar25" identifier = (binary_expression "dVar27 - dVar25" identifier - identifier)) ;) })) (expression_statement "bVar13 = (byte)((uint)(int)dVar27 >> 8);" (assignment_expression "bVar13 = (byte)((uint)(int)dVar27 >> 8)" identifier = (call_expression "(byte)((uint)(int)dVar27 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)(int)dVar27 >> 8)" ( (binary_expression "(uint)(int)dVar27 >> 8" (cast_expression "(uint)(int)dVar27" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) ;) (expression_statement "bVar17 = (byte)(int)dVar27;" (assignment_expression "bVar17 = (byte)(int)dVar27" identifier = (cast_expression "(byte)(int)dVar27" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" else (compound_statement "{\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" { (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" identifier = number_literal) ;) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) }))) (expression_statement "bVar12 = bVar17;" (assignment_expression "bVar12 = bVar17" identifier = identifier) ;) (expression_statement "bVar14 = bVar13;" (assignment_expression "bVar14 = bVar13" identifier = identifier) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_00165d84;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00165d84;" goto statement_identifier ;)) (labeled_statement "LAB_00165b70:\n        *param_6 = bVar13;" statement_identifier : (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" * identifier) = identifier) ;)) (expression_statement "param_6[1] = bVar17;" (assignment_expression "param_6[1] = bVar17" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }" { (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x11] != 1) goto LAB_00165be4;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165be4;" goto statement_identifier ;)) (labeled_statement "LAB_00165d64:\n        param_6[2] = bVar12;" statement_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] = bVar14;" (assignment_expression "param_6[3] = bVar14" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }" else (compound_statement "{\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }" { (if_statement "if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" if (parenthesized_expression "(fVar33 < fVar31)" ( (binary_expression "fVar33 < fVar31" identifier < identifier) )) (compound_statement "{\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }" { (expression_statement "dVar27 = (double)fVar33 + dVar26;" (assignment_expression "dVar27 = (double)fVar33 + dVar26" identifier = (binary_expression "(double)fVar33 + dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }" if (parenthesized_expression "(dVar25 <= dVar27)" ( (binary_expression "dVar25 <= dVar27" identifier <= identifier) )) (compound_statement "{\n            dVar27 = dVar27 - dVar25;\n          }" { (expression_statement "dVar27 = dVar27 - dVar25;" (assignment_expression "dVar27 = dVar27 - dVar25" identifier = (binary_expression "dVar27 - dVar25" identifier - identifier)) ;) })) (expression_statement "bVar13 = (byte)((uint)(int)dVar27 >> 8);" (assignment_expression "bVar13 = (byte)((uint)(int)dVar27 >> 8)" identifier = (call_expression "(byte)((uint)(int)dVar27 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)(int)dVar27 >> 8)" ( (binary_expression "(uint)(int)dVar27 >> 8" (cast_expression "(uint)(int)dVar27" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) ;) (expression_statement "bVar17 = (byte)(int)dVar27;" (assignment_expression "bVar17 = (byte)(int)dVar27" identifier = (cast_expression "(byte)(int)dVar27" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" else (compound_statement "{\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" { (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" identifier = number_literal) ;) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) }))) (expression_statement "bVar12 = bVar17;" (assignment_expression "bVar12 = bVar17" identifier = identifier) ;) (expression_statement "bVar14 = bVar13;" (assignment_expression "bVar14 = bVar13" identifier = identifier) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_00165d64;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00165d64;" goto statement_identifier ;)) (labeled_statement "LAB_00165be4:\n        param_6[2] = bVar13;" statement_identifier : (expression_statement "param_6[2] = bVar13;" (assignment_expression "param_6[2] = bVar13" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[3] = bVar17;" (assignment_expression "param_6[3] = bVar17" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }" { (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x11] != 1) goto LAB_00165c5c;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165c5c;" goto statement_identifier ;)) (labeled_statement "LAB_00165d44:\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] = bVar14;" (assignment_expression "param_6[5] = bVar14" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }" else (compound_statement "{\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }" { (if_statement "if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" if (parenthesized_expression "(fVar33 < fVar31)" ( (binary_expression "fVar33 < fVar31" identifier < identifier) )) (compound_statement "{\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }" { (expression_statement "dVar27 = (double)fVar33 + dVar26;" (assignment_expression "dVar27 = (double)fVar33 + dVar26" identifier = (binary_expression "(double)fVar33 + dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }" if (parenthesized_expression "(dVar25 <= dVar27)" ( (binary_expression "dVar25 <= dVar27" identifier <= identifier) )) (compound_statement "{\n            dVar27 = dVar27 - dVar25;\n          }" { (expression_statement "dVar27 = dVar27 - dVar25;" (assignment_expression "dVar27 = dVar27 - dVar25" identifier = (binary_expression "dVar27 - dVar25" identifier - identifier)) ;) })) (expression_statement "bVar13 = (byte)((uint)(int)dVar27 >> 8);" (assignment_expression "bVar13 = (byte)((uint)(int)dVar27 >> 8)" identifier = (call_expression "(byte)((uint)(int)dVar27 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)(int)dVar27 >> 8)" ( (binary_expression "(uint)(int)dVar27 >> 8" (cast_expression "(uint)(int)dVar27" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) ;) (expression_statement "bVar17 = (byte)(int)dVar27;" (assignment_expression "bVar17 = (byte)(int)dVar27" identifier = (cast_expression "(byte)(int)dVar27" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" else (compound_statement "{\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" { (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" identifier = number_literal) ;) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) }))) (expression_statement "bVar12 = bVar17;" (assignment_expression "bVar12 = bVar17" identifier = identifier) ;) (expression_statement "bVar14 = bVar13;" (assignment_expression "bVar14 = bVar13" identifier = identifier) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_00165d44;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00165d44;" goto statement_identifier ;)) (labeled_statement "LAB_00165c5c:\n        param_6[4] = bVar13;" statement_identifier : (expression_statement "param_6[4] = bVar13;" (assignment_expression "param_6[4] = bVar13" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[5] = bVar17;" (assignment_expression "param_6[5] = bVar17" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)" ( (comma_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier = (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) , (binary_expression "fVar33 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;" statement_identifier : (if_statement "if (param_2[0x11] != 1) goto LAB_00165c8c;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165c8c;" goto statement_identifier ;))) (labeled_statement "LAB_00165d24:\n        param_6[6] = bVar13;" statement_identifier : (expression_statement "param_6[6] = bVar13;" (assignment_expression "param_6[6] = bVar13" (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) ;) }) (else_clause "else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }" else (compound_statement "{\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }" { (if_statement "if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }" if (parenthesized_expression "(fVar31 <= fVar33)" ( (binary_expression "fVar31 <= fVar33" identifier <= identifier) )) (compound_statement "{\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }" { (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (goto_statement "goto LAB_00165c80;" goto statement_identifier ;) })) (expression_statement "dVar27 = (double)fVar33 + dVar26;" (assignment_expression "dVar27 = (double)fVar33 + dVar26" identifier = (binary_expression "(double)fVar33 + dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }" if (parenthesized_expression "(dVar27 < dVar25)" ( (binary_expression "dVar27 < dVar25" identifier < identifier) )) (compound_statement "{\n          uVar5 = (undefined2)(int)dVar27;\n        }" { (expression_statement "uVar5 = (undefined2)(int)dVar27;" (assignment_expression "uVar5 = (undefined2)(int)dVar27" identifier = (cast_expression "(undefined2)(int)dVar27" ( (type_descriptor "undefined2" type_identifier) ) (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }" else (compound_statement "{\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }" { (expression_statement "uVar5 = (undefined2)(int)(dVar27 - dVar25);" (assignment_expression "uVar5 = (undefined2)(int)(dVar27 - dVar25)" identifier = (call_expression "(undefined2)(int)(dVar27 - dVar25)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar27 - dVar25)" ( (binary_expression "dVar27 - dVar25" identifier - identifier) )))) ;) }))) (expression_statement "bVar12 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar12 = (byte)((ushort)uVar5 >> 8)" identifier = (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar5 >> 8)" ( (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)uVar5;" (assignment_expression "bVar13 = (byte)uVar5" identifier = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_00165d24;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00165d24;" goto statement_identifier ;)) (labeled_statement "LAB_00165c8c:\n        param_6[6] = bVar12;" statement_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] = bVar13;" (assignment_expression "param_6[7] = bVar13" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10] + 8;" (assignment_expression "param_6 = param_6 + param_2[10] + 8" identifier = (binary_expression "param_6 + param_2[10] + 8" (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iVar22 == param_4) {\n        return;\n      }" if (parenthesized_expression "(iVar22 == param_4)" ( (binary_expression "iVar22 == param_4" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (uVar21 < 0x11) {\n    if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }" if (parenthesized_expression "(uVar21 < 0x11)" ( (binary_expression "uVar21 < 0x11" identifier < number_literal) )) (compound_statement "{\n    if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }" { (if_statement "if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }" if (parenthesized_expression "(uVar21 == 8)" ( (binary_expression "uVar21 == 8" identifier == number_literal) )) (compound_statement "{\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }" { (if_statement "if (param_4 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);" (assignment_expression "dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);" (assignment_expression "dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (do_statement "do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);" do (compound_statement "{\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          bVar13 = 0;\n        }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" { (expression_statement "dVar29 = (double)fVar33 / dVar26;" (assignment_expression "dVar29 = (double)fVar33 / dVar26" identifier = (binary_expression "(double)fVar33 / dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }" if (parenthesized_expression "(dVar29 < dVar25)" ( (binary_expression "dVar29 < dVar25" identifier < identifier) )) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }" { (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" if (parenthesized_expression "(dVar29 < dVar27)" ( (binary_expression "dVar29 < dVar27" identifier < identifier) )) (compound_statement "{\n              bVar13 = (byte)(int)dVar29;\n            }" { (expression_statement "bVar13 = (byte)(int)dVar29;" (assignment_expression "bVar13 = (byte)(int)dVar29" identifier = (cast_expression "(byte)(int)dVar29" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(int)dVar29" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" else (compound_statement "{\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" { (expression_statement "bVar13 = (byte)(int)(dVar29 - dVar27);" (assignment_expression "bVar13 = (byte)(int)(dVar29 - dVar27)" identifier = (call_expression "(byte)(int)(dVar29 - dVar27)" (call_expression "(byte)(int)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar29 - dVar27)" ( (binary_expression "dVar29 - dVar27" identifier - identifier) )))) ;) }))) }) (else_clause "else {\n            bVar13 = 0xff;\n          }" else (compound_statement "{\n            bVar13 = 0xff;\n          }" { (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          bVar13 = 0;\n        }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" { (expression_statement "dVar29 = (double)fVar33 / dVar26;" (assignment_expression "dVar29 = (double)fVar33 / dVar26" identifier = (binary_expression "(double)fVar33 / dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }" if (parenthesized_expression "(dVar29 < dVar25)" ( (binary_expression "dVar29 < dVar25" identifier < identifier) )) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }" { (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" if (parenthesized_expression "(dVar29 < dVar27)" ( (binary_expression "dVar29 < dVar27" identifier < identifier) )) (compound_statement "{\n              bVar13 = (byte)(int)dVar29;\n            }" { (expression_statement "bVar13 = (byte)(int)dVar29;" (assignment_expression "bVar13 = (byte)(int)dVar29" identifier = (cast_expression "(byte)(int)dVar29" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(int)dVar29" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" else (compound_statement "{\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" { (expression_statement "bVar13 = (byte)(int)(dVar29 - dVar27);" (assignment_expression "bVar13 = (byte)(int)(dVar29 - dVar27)" identifier = (call_expression "(byte)(int)(dVar29 - dVar27)" (call_expression "(byte)(int)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar29 - dVar27)" ( (binary_expression "dVar29 - dVar27" identifier - identifier) )))) ;) }))) }) (else_clause "else {\n            bVar13 = 0xff;\n          }" else (compound_statement "{\n            bVar13 = 0xff;\n          }" { (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          bVar13 = 0;\n        }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" { (expression_statement "dVar29 = (double)fVar33 / dVar26;" (assignment_expression "dVar29 = (double)fVar33 / dVar26" identifier = (binary_expression "(double)fVar33 / dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }" if (parenthesized_expression "(dVar29 < dVar25)" ( (binary_expression "dVar29 < dVar25" identifier < identifier) )) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }" { (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" if (parenthesized_expression "(dVar29 < dVar27)" ( (binary_expression "dVar29 < dVar27" identifier < identifier) )) (compound_statement "{\n              bVar13 = (byte)(int)dVar29;\n            }" { (expression_statement "bVar13 = (byte)(int)dVar29;" (assignment_expression "bVar13 = (byte)(int)dVar29" identifier = (cast_expression "(byte)(int)dVar29" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(int)dVar29" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" else (compound_statement "{\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" { (expression_statement "bVar13 = (byte)(int)(dVar29 - dVar27);" (assignment_expression "bVar13 = (byte)(int)(dVar29 - dVar27)" identifier = (call_expression "(byte)(int)(dVar29 - dVar27)" (call_expression "(byte)(int)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar29 - dVar27)" ( (binary_expression "dVar29 - dVar27" identifier - identifier) )))) ;) }))) }) (else_clause "else {\n            bVar13 = 0xff;\n          }" else (compound_statement "{\n            bVar13 = 0xff;\n          }" { (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "param_6[2] = bVar13;" (assignment_expression "param_6[2] = bVar13" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)" ( (comma_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier = (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) , (binary_expression "fVar33 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n          bVar13 = 0;\n        }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" { (expression_statement "dVar29 = (double)fVar33 / dVar26;" (assignment_expression "dVar29 = (double)fVar33 / dVar26" identifier = (binary_expression "(double)fVar33 / dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }" if (parenthesized_expression "(dVar29 < dVar25)" ( (binary_expression "dVar29 < dVar25" identifier < identifier) )) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }" { (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }" if (parenthesized_expression "(dVar29 < *(double *)(puVar2 + 0x1410))" ( (binary_expression "dVar29 < *(double *)(puVar2 + 0x1410)" identifier < (pointer_expression "*(double *)(puVar2 + 0x1410)" * (cast_expression "(double *)(puVar2 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1410)" ( (binary_expression "puVar2 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n              bVar13 = (byte)(int)dVar29;\n            }" { (expression_statement "bVar13 = (byte)(int)dVar29;" (assignment_expression "bVar13 = (byte)(int)dVar29" identifier = (cast_expression "(byte)(int)dVar29" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(int)dVar29" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }" else (compound_statement "{\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }" { (expression_statement "bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));" (assignment_expression "bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410))" identifier = (call_expression "(byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410))" (call_expression "(byte)(int)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar29 - *(double *)(puVar2 + 0x1410))" ( (binary_expression "dVar29 - *(double *)(puVar2 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar2 + 0x1410)" * (cast_expression "(double *)(puVar2 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1410)" ( (binary_expression "puVar2 + 0x1410" identifier + number_literal) ))))) )))) ;) }))) }) (else_clause "else {\n            bVar13 = 0xff;\n          }" else (compound_statement "{\n            bVar13 = 0xff;\n          }" { (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "param_6[3] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10] + 4;" (assignment_expression "param_6 = param_6 + param_2[10] + 4" identifier = (binary_expression "param_6 + param_2[10] + 4" (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar22 != param_4)" ( (binary_expression "iVar22 != param_4" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }" if (parenthesized_expression "(uVar21 == 10)" ( (binary_expression "uVar21 == 10" identifier == number_literal) )) (compound_statement "{\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }" { (if_statement "if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }" if (parenthesized_expression "(param_2[0xc] == 0)" ( (binary_expression "param_2[0xc] == 0" (subscript_expression "param_2[0xc]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }" { (if_statement "if (param_4 < 1) {\n          return;\n        }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);" (assignment_expression "uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x51e0)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x51e0" identifier + number_literal) ))))) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);" (assignment_expression "dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x7538)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x7538)" ( (binary_expression "PTR_s_courses_003a88ec + -0x7538" identifier + number_literal) ))))) ;) (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (do_statement "do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );" do (compound_statement "{\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "dVar40 = *(double *)(puVar4 + -0x7538);" (assignment_expression "dVar40 = *(double *)(puVar4 + -0x7538)" identifier = (pointer_expression "*(double *)(puVar4 + -0x7538)" * (cast_expression "(double *)(puVar4 + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x7538)" ( (binary_expression "puVar4 + -0x7538" identifier + number_literal) ))))) ;) (expression_statement "dVar42 = *(double *)(puVar2 + 0x1418);" (assignment_expression "dVar42 = *(double *)(puVar2 + 0x1418)" identifier = (pointer_expression "*(double *)(puVar2 + 0x1418)" * (cast_expression "(double *)(puVar2 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1418)" ( (binary_expression "puVar2 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = *(double *)(puVar2 + 0x1a58);" (assignment_expression "dVar38 = *(double *)(puVar2 + 0x1a58)" identifier = (pointer_expression "*(double *)(puVar2 + 0x1a58)" * (cast_expression "(double *)(puVar2 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1a58)" ( (binary_expression "puVar2 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar37 = *(double *)(puVar2 + 0x1a60);" (assignment_expression "dVar37 = *(double *)(puVar2 + 0x1a60)" identifier = (pointer_expression "*(double *)(puVar2 + 0x1a60)" * (cast_expression "(double *)(puVar2 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1a60)" ( (binary_expression "puVar2 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(puVar2 + 0x1400);" (assignment_expression "dVar41 = *(double *)(puVar2 + 0x1400)" identifier = (pointer_expression "*(double *)(puVar2 + 0x1400)" * (cast_expression "(double *)(puVar2 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1400)" ( (binary_expression "puVar2 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = dVar42;" (assignment_expression "dVar39 = dVar42" identifier = identifier) ;) (do_statement "do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);" do (compound_statement "{\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          }" { (expression_statement "iVar7 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }" if (parenthesized_expression "(iVar24 == 2)" ( (binary_expression "iVar24 == 2" identifier == number_literal) )) (compound_statement "{\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar7 + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(iVar7 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar7 + 0x20) * 4" (pointer_expression "*(int *)(iVar7 + 0x20)" * (cast_expression "(int *)(iVar7 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20)" ( (binary_expression "iVar7 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }" if (parenthesized_expression "(fVar33 < (float)uVar34)" ( (binary_expression "fVar33 < (float)uVar34" identifier < (cast_expression "(float)uVar34" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar8 = (uint)fVar33;\n              }" { (expression_statement "uVar8 = (uint)fVar33;" (assignment_expression "uVar8 = (uint)fVar33" identifier = (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }" else (compound_statement "{\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }" { (expression_statement "uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;" (assignment_expression "uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000" identifier = (binary_expression "(int)(fVar33 - (float)uVar34) | 0x80000000" (cast_expression "(int)(fVar33 - (float)uVar34)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar33 - (float)uVar34)" ( (binary_expression "fVar33 - (float)uVar34" identifier - (cast_expression "(float)uVar34" ( (type_descriptor "float" primitive_type) ) identifier)) ))) | number_literal)) ;) }))) (expression_statement "dVar30 = (double)(int)uVar8;" (assignment_expression "dVar30 = (double)(int)uVar8" identifier = (cast_expression "(double)(int)uVar8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                dVar30 = dVar30 + dVar25;\n              }" { (expression_statement "dVar30 = dVar30 + dVar25;" (assignment_expression "dVar30 = dVar30 + dVar25" identifier = (binary_expression "dVar30 + dVar25" identifier + identifier)) ;) })) (labeled_statement "LAB_00164eec:\n              fVar33 = (float)dVar30;" statement_identifier : (expression_statement "fVar33 = (float)dVar30;" (assignment_expression "fVar33 = (float)dVar30" identifier = (cast_expression "(float)dVar30" ( (type_descriptor "float" primitive_type) ) identifier)) ;)) }) (else_clause "else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }" else (compound_statement "{\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }" { (if_statement "if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }" if (parenthesized_expression "(iVar24 != 3)" ( (binary_expression "iVar24 != 3" identifier != number_literal) )) (compound_statement "{\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }" { (expression_statement "fVar33 = *(float *)(puVar3 + -0x51e0);" (assignment_expression "fVar33 = *(float *)(puVar3 + -0x51e0)" identifier = (pointer_expression "*(float *)(puVar3 + -0x51e0)" * (cast_expression "(float *)(puVar3 + -0x51e0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x51e0)" ( (binary_expression "puVar3 + -0x51e0" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }" if (parenthesized_expression "(iVar24 == 1)" ( (binary_expression "iVar24 == 1" identifier == number_literal) )) (compound_statement "{\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }" { (expression_statement "fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);" (assignment_expression "fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar7 + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(iVar7 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar7 + 0x14) * 4" (pointer_expression "*(int *)(iVar7 + 0x14)" * (cast_expression "(int *)(iVar7 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" if (parenthesized_expression "(fVar32 < fVar33)" ( (binary_expression "fVar32 < fVar33" identifier < identifier) )) (compound_statement "{\n                    uVar8 = (uint)fVar32;\n                  }" { (expression_statement "uVar8 = (uint)fVar32;" (assignment_expression "uVar8 = (uint)fVar32" identifier = (cast_expression "(uint)fVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" else (compound_statement "{\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" { (expression_statement "uVar8 = (int)(fVar32 - fVar33) | 0x80000000;" (assignment_expression "uVar8 = (int)(fVar32 - fVar33) | 0x80000000" identifier = (binary_expression "(int)(fVar32 - fVar33) | 0x80000000" (cast_expression "(int)(fVar32 - fVar33)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar32 - fVar33)" ( (binary_expression "fVar32 - fVar33" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "dVar30 = (double)(int)uVar8;" (assignment_expression "dVar30 = (double)(int)uVar8" identifier = (cast_expression "(double)(int)uVar8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    dVar30 = dVar30 + dVar42;\n                  }" { (expression_statement "dVar30 = dVar30 + dVar42;" (assignment_expression "dVar30 = dVar30 + dVar42" identifier = (binary_expression "dVar30 + dVar42" identifier + identifier)) ;) })) }) (else_clause "else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }" else (compound_statement "{\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }" { (expression_statement "fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);" (assignment_expression "fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar7 + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar7 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar7 + 8) * 4)" ( (binary_expression "param_5 + *(int *)(iVar7 + 8) * 4" identifier + (binary_expression "*(int *)(iVar7 + 8) * 4" (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" if (parenthesized_expression "(fVar32 < fVar33)" ( (binary_expression "fVar32 < fVar33" identifier < identifier) )) (compound_statement "{\n                    uVar8 = (uint)fVar32;\n                  }" { (expression_statement "uVar8 = (uint)fVar32;" (assignment_expression "uVar8 = (uint)fVar32" identifier = (cast_expression "(uint)fVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" else (compound_statement "{\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" { (expression_statement "uVar8 = (int)(fVar32 - fVar33) | 0x80000000;" (assignment_expression "uVar8 = (int)(fVar32 - fVar33) | 0x80000000" identifier = (binary_expression "(int)(fVar32 - fVar33) | 0x80000000" (cast_expression "(int)(fVar32 - fVar33)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar32 - fVar33)" ( (binary_expression "fVar32 - fVar33" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "dVar30 = (double)(int)uVar8;" (assignment_expression "dVar30 = (double)(int)uVar8" identifier = (cast_expression "(double)(int)uVar8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    dVar30 = dVar30 + dVar42;\n                  }" { (expression_statement "dVar30 = dVar30 + dVar42;" (assignment_expression "dVar30 = dVar30 + dVar42" identifier = (binary_expression "dVar30 + dVar42" identifier + identifier)) ;) })) }))) (goto_statement "goto LAB_00164eec;" goto statement_identifier ;) })) (expression_statement "fVar33 = 0.0;" (assignment_expression "fVar33 = 0.0" identifier = number_literal) ;) (if_statement "if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }" if (parenthesized_expression "(*(int *)(iVar7 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar7 + 0x34) == 4" (pointer_expression "*(int *)(iVar7 + 0x34)" * (cast_expression "(int *)(iVar7 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }" { (expression_statement "fVar32 = *(float *)(puVar3 + -0x51e0);" (assignment_expression "fVar32 = *(float *)(puVar3 + -0x51e0)" identifier = (pointer_expression "*(float *)(puVar3 + -0x51e0)" * (cast_expression "(float *)(puVar3 + -0x51e0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x51e0)" ( (binary_expression "puVar3 + -0x51e0" identifier + number_literal) ))))) ;) (expression_statement "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4)" identifier = (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar7 + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(iVar7 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar7 + 0x38) * 4" (pointer_expression "*(int *)(iVar7 + 0x38)" * (cast_expression "(int *)(iVar7 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x38)" ( (binary_expression "iVar7 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }" if (parenthesized_expression "(fVar33 < fVar32)" ( (binary_expression "fVar33 < fVar32" identifier < identifier) )) (compound_statement "{\n                  uVar8 = (uint)fVar33;\n                }" { (expression_statement "uVar8 = (uint)fVar33;" (assignment_expression "uVar8 = (uint)fVar33" identifier = (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }" else (compound_statement "{\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }" { (expression_statement "uVar8 = (int)(fVar33 - fVar32) | 0x80000000;" (assignment_expression "uVar8 = (int)(fVar33 - fVar32) | 0x80000000" identifier = (binary_expression "(int)(fVar33 - fVar32) | 0x80000000" (cast_expression "(int)(fVar33 - fVar32)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar33 - fVar32)" ( (binary_expression "fVar33 - fVar32" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "dVar30 = (double)(int)uVar8;" (assignment_expression "dVar30 = (double)(int)uVar8" identifier = (cast_expression "(double)(int)uVar8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  dVar30 = dVar30 + dVar39;\n                }" { (expression_statement "dVar30 = dVar30 + dVar39;" (assignment_expression "dVar30 = dVar30 + dVar39" identifier = (binary_expression "dVar30 + dVar39" identifier + identifier)) ;) })) (goto_statement "goto LAB_00164eec;" goto statement_identifier ;) })) }))) (expression_statement "uVar8 = (uint)(iVar24 + iVar22) % 3;" (assignment_expression "uVar8 = (uint)(iVar24 + iVar22) % 3" identifier = (binary_expression "(uint)(iVar24 + iVar22) % 3" (call_expression "(uint)(iVar24 + iVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar24 + iVar22)" ( (binary_expression "iVar24 + iVar22" identifier + identifier) ))) % number_literal)) ;) (if_statement "if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" if (parenthesized_expression "(uVar8 == 1)" ( (binary_expression "uVar8 == 1" identifier == number_literal) )) (compound_statement "{\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }" { (if_statement "if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }" if (parenthesized_expression "(0.0 < fVar33)" ( (binary_expression "0.0 < fVar33" number_literal < identifier) )) (compound_statement "{\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }" { (expression_statement "dVar30 = ((double)fVar33 * dVar26) / dVar27;" (assignment_expression "dVar30 = ((double)fVar33 * dVar26) / dVar27" identifier = (binary_expression "((double)fVar33 * dVar26) / dVar27" (parenthesized_expression "((double)fVar33 * dVar26)" ( (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }" if (parenthesized_expression "(dVar30 < dVar28)" ( (binary_expression "dVar30 < dVar28" identifier < identifier) )) (compound_statement "{\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar30 + dVar29)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar30 + dVar29)" ( (binary_expression "dVar30 + dVar29" identifier + identifier) ))) ;) (expression_statement "uVar21 = uVar21 | extraout_v1_01 << 0xc;" (assignment_expression "uVar21 = uVar21 | extraout_v1_01 << 0xc" identifier = (binary_expression "uVar21 | extraout_v1_01 << 0xc" identifier | (binary_expression "extraout_v1_01 << 0xc" identifier << number_literal))) ;) }) (else_clause "else {\n                  uVar21 = 0xfffff000;\n                }" else (compound_statement "{\n                  uVar21 = 0xfffff000;\n                }" { (expression_statement "uVar21 = 0xfffff000;" (assignment_expression "uVar21 = 0xfffff000" identifier = number_literal) ;) }))) })) }) (else_clause "else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" else (if_statement "if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" if (parenthesized_expression "(uVar8 == 2)" ( (binary_expression "uVar8 == 2" identifier == number_literal) )) (compound_statement "{\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }" { (if_statement "if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }" if (parenthesized_expression "(0.0 < fVar33)" ( (binary_expression "0.0 < fVar33" number_literal < identifier) )) (compound_statement "{\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }" { (expression_statement "dVar30 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar30 = ((double)fVar33 * dVar40) / dVar38" identifier = (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" ( (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }" if (parenthesized_expression "(dVar30 < dVar37)" ( (binary_expression "dVar30 < dVar37" identifier < identifier) )) (compound_statement "{\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar30 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar30 + dVar41)" ( (binary_expression "dVar30 + dVar41" identifier + identifier) ))) ;) (expression_statement "uVar21 = uVar21 | extraout_v1 << 2;" (assignment_expression "uVar21 = uVar21 | extraout_v1 << 2" identifier = (binary_expression "uVar21 | extraout_v1 << 2" identifier | (binary_expression "extraout_v1 << 2" identifier << number_literal))) ;) }) (else_clause "else {\n                  uVar21 = 0xfffffffc;\n                }" else (compound_statement "{\n                  uVar21 = 0xfffffffc;\n                }" { (expression_statement "uVar21 = 0xfffffffc;" (assignment_expression "uVar21 = 0xfffffffc" identifier = number_literal) ;) }))) })) (expression_statement "bVar13 = (byte)uVar21;" (assignment_expression "bVar13 = (byte)uVar21" identifier = (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar17 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar17 = (byte)(uVar21 >> 0x18)" identifier = (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x18)" ( (binary_expression "uVar21 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar14 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar14 = (byte)(uVar21 >> 0x10)" identifier = (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x10)" ( (binary_expression "uVar21 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" identifier = (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 8)" ( (binary_expression "uVar21 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }" { (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (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[2] = bVar14;" (assignment_expression "param_6[2] = bVar14" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = bVar17;" (assignment_expression "param_6[3] = bVar17" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6 = param_6 + 4;" (assignment_expression "param_6 = param_6 + 4" identifier = (binary_expression "param_6 + 4" identifier + number_literal)) ;) }) (else_clause "else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }" else (compound_statement "{\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "*param_6 = bVar17;" (assignment_expression "*param_6 = bVar17" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = bVar14;" (assignment_expression "param_6[1] = bVar14" (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] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6 = param_6 + 4;" (assignment_expression "param_6 = param_6 + 4" identifier = (binary_expression "param_6 + 4" identifier + number_literal)) ;) }))) }) (else_clause "else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" else (if_statement "if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" if (parenthesized_expression "(0.0 < fVar33)" ( (binary_expression "0.0 < fVar33" number_literal < identifier) )) (compound_statement "{\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" { (expression_statement "dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);" (assignment_expression "dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58)" identifier = (binary_expression "((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58)" (parenthesized_expression "((double)fVar33 * *(double *)(puVar4 + -0x7538))" ( (binary_expression "(double)fVar33 * *(double *)(puVar4 + -0x7538)" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(puVar4 + -0x7538)" * (cast_expression "(double *)(puVar4 + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x7538)" ( (binary_expression "puVar4 + -0x7538" identifier + number_literal) ))))) )) / (pointer_expression "*(double *)(puVar2 + 0x1a58)" * (cast_expression "(double *)(puVar2 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1a58)" ( (binary_expression "puVar2 + 0x1a58" identifier + number_literal) )))))) ;) (if_statement "if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }" if (parenthesized_expression "(dVar30 < *(double *)(puVar2 + 0x1a60))" ( (binary_expression "dVar30 < *(double *)(puVar2 + 0x1a60)" identifier < (pointer_expression "*(double *)(puVar2 + 0x1a60)" * (cast_expression "(double *)(puVar2 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1a60)" ( (binary_expression "puVar2 + 0x1a60" identifier + number_literal) ))))) )) (compound_statement "{\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400))" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar30 + *(double *)(puVar2 + 0x1400))" ( (binary_expression "dVar30 + *(double *)(puVar2 + 0x1400)" identifier + (pointer_expression "*(double *)(puVar2 + 0x1400)" * (cast_expression "(double *)(puVar2 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1400)" ( (binary_expression "puVar2 + 0x1400" identifier + number_literal) ))))) ))) ;) (expression_statement "uVar21 = uVar21 | extraout_v1_00 << 0x16;" (assignment_expression "uVar21 = uVar21 | extraout_v1_00 << 0x16" identifier = (binary_expression "uVar21 | extraout_v1_00 << 0x16" identifier | (binary_expression "extraout_v1_00 << 0x16" identifier << number_literal))) ;) }) (else_clause "else {\n                uVar21 = uVar21 | 0xffc00000;\n              }" else (compound_statement "{\n                uVar21 = uVar21 | 0xffc00000;\n              }" { (expression_statement "uVar21 = uVar21 | 0xffc00000;" (assignment_expression "uVar21 = uVar21 | 0xffc00000" identifier = (binary_expression "uVar21 | 0xffc00000" identifier | number_literal)) ;) }))) })))))) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != 4)" ( (binary_expression "iVar24 != 4" identifier != number_literal) )) ;) (expression_statement "iVar22 = iVar22 + 4;" (assignment_expression "iVar22 = iVar22 + 4" identifier = (binary_expression "iVar22 + 4" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_6 = param_6 + param_2[10];" (assignment_expression "param_6 = param_6 + param_2[10]" identifier = (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ]))) ;) (if_statement "if (iVar22 == param_4 << 2) {\n            return;\n          }" if (parenthesized_expression "(iVar22 == param_4 << 2)" ( (binary_expression "iVar22 == param_4 << 2" identifier == (binary_expression "param_4 << 2" identifier << number_literal)) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }" if (parenthesized_expression "(param_2[1] == 0x20)" ( (binary_expression "param_2[1] == 0x20" (subscript_expression "param_2[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }" { (if_statement "if (param_4 < 1) {\n          return;\n        }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);" (assignment_expression "dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x7538)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x7538)" ( (binary_expression "PTR_s_courses_003a88ec + -0x7538" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = 10;" (assignment_expression "uVar21 = 10" identifier = number_literal) ;) (expression_statement "dVar25 = dVar37;" (assignment_expression "dVar25 = dVar37" identifier = identifier) ;) (expression_statement "dVar26 = dVar38;" (assignment_expression "dVar26 = dVar38" identifier = identifier) ;) (expression_statement "dVar27 = dVar40;" (assignment_expression "dVar27 = dVar40" identifier = identifier) ;) (expression_statement "dVar28 = dVar41;" (assignment_expression "dVar28 = dVar41" identifier = identifier) ;) (expression_statement "dVar29 = dVar40;" (assignment_expression "dVar29 = dVar40" identifier = identifier) ;) (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" identifier = identifier) ;) (while_statement "while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }" { (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 8) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 8) * 4" identifier + (binary_expression "*(int *)(iVar24 + 8) * 4" (pointer_expression "*(int *)(iVar24 + 8)" * (cast_expression "(int *)(iVar24 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }" if (parenthesized_expression "(NAN(fVar33))" ( (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier ))) )) (compound_statement "{\n            uVar8 = 0;\n          }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }" else (compound_statement "{\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }" if (parenthesized_expression "(0.0 < fVar33)" ( (binary_expression "0.0 < fVar33" number_literal < identifier) )) (compound_statement "{\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }" { (expression_statement "dVar42 = ((double)fVar33 * dVar27) / dVar26;" (assignment_expression "dVar42 = ((double)fVar33 * dVar27) / dVar26" identifier = (binary_expression "((double)fVar33 * dVar27) / dVar26" (parenthesized_expression "((double)fVar33 * dVar27)" ( (binary_expression "(double)fVar33 * dVar27" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }" if (parenthesized_expression "(dVar42 < dVar25)" ( (binary_expression "dVar42 < dVar25" identifier < identifier) )) (compound_statement "{\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar28)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + dVar28)" ( (binary_expression "dVar42 + dVar28" identifier + identifier) ))) ;) (expression_statement "uVar8 = extraout_v1_06;" (assignment_expression "uVar8 = extraout_v1_06" identifier = identifier) ;) }) (else_clause "else {\n                uVar8 = 0xffffffff;\n              }" else (compound_statement "{\n                uVar8 = 0xffffffff;\n              }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }))) })) }))) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) (if_statement "if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }" { (expression_statement "uVar23 = 0x20;" (assignment_expression "uVar23 = 0x20" identifier = number_literal) ;) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" { (expression_statement "bVar1 = uVar23 < uVar21;" (assignment_expression "bVar1 = uVar23 < uVar21" identifier = (binary_expression "uVar23 < uVar21" identifier < identifier)) ;) (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" identifier = identifier) ;) (do_statement "do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);" do (compound_statement "{\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            }" { (expression_statement "uVar15 = uVar23;" (assignment_expression "uVar15 = uVar23" identifier = identifier) ;) (if_statement "if (!bVar1) {\n                uVar15 = uVar9;\n              }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n                uVar15 = uVar9;\n              }" { (expression_statement "uVar15 = uVar9;" (assignment_expression "uVar15 = uVar9" identifier = identifier) ;) })) (expression_statement "uVar16 = uVar21 - uVar9;" (assignment_expression "uVar16 = uVar21 - uVar9" identifier = (binary_expression "uVar21 - uVar9" identifier - identifier)) ;) (expression_statement "uVar10 = 0x20 - uVar23;" (assignment_expression "uVar10 = 0x20 - uVar23" identifier = (binary_expression "0x20 - uVar23" number_literal - identifier)) ;) (expression_statement "uVar23 = uVar23 - uVar15;" (assignment_expression "uVar23 = uVar23 - uVar15" identifier = (binary_expression "uVar23 - uVar15" identifier - identifier)) ;) (expression_statement "uVar9 = uVar9 - uVar15;" (assignment_expression "uVar9 = uVar9 - uVar15" identifier = (binary_expression "uVar9 - uVar15" identifier - identifier)) ;) (expression_statement "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);" (assignment_expression "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4)" identifier = (pointer_expression "*(uint *)(param_2[0x16] + uVar15 * 4)" * (cast_expression "(uint *)(param_2[0x16] + uVar15 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0x16] + uVar15 * 4)" ( (binary_expression "param_2[0x16] + uVar15 * 4" (subscript_expression "param_2[0x16]" identifier [ number_literal ]) + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];" (assignment_expression "uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" identifier = (binary_expression "(uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" (binary_expression "(uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f)" (parenthesized_expression "(uVar8 >> (uVar16 & 0x1f) & uVar15)" ( (binary_expression "uVar8 >> (uVar16 & 0x1f) & uVar15" (binary_expression "uVar8 >> (uVar16 & 0x1f)" identifier >> (parenthesized_expression "(uVar16 & 0x1f)" ( (binary_expression "uVar16 & 0x1f" identifier & number_literal) ))) & identifier) )) << (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) | (subscript_expression "param_2[0x14]" identifier [ number_literal ]))) ;) (expression_statement "param_2[0x14] = uVar15;" (assignment_expression "param_2[0x14] = uVar15" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" identifier = identifier) ;) (if_statement "if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" { (expression_statement "param_6 = pbVar11 + 4;" (assignment_expression "param_6 = pbVar11 + 4" identifier = (binary_expression "pbVar11 + 4" identifier + number_literal)) ;) (expression_statement "bVar14 = (byte)(uVar15 >> 0x18);" (assignment_expression "bVar14 = (byte)(uVar15 >> 0x18)" identifier = (call_expression "(byte)(uVar15 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar15 >> 0x18)" ( (binary_expression "uVar15 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar15 >> 0x10);" (assignment_expression "bVar12 = (byte)(uVar15 >> 0x10)" identifier = (call_expression "(byte)(uVar15 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar15 >> 0x10)" ( (binary_expression "uVar15 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar15 >> 8);" (assignment_expression "bVar13 = (byte)(uVar15 >> 8)" identifier = (call_expression "(byte)(uVar15 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar15 >> 8)" ( (binary_expression "uVar15 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }" { (expression_statement "*pbVar11 = (byte)uVar15;" (assignment_expression "*pbVar11 = (byte)uVar15" (pointer_expression "*pbVar11" * identifier) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar11[1] = bVar13;" (assignment_expression "pbVar11[1] = bVar13" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[2] = bVar12;" (assignment_expression "pbVar11[2] = bVar12" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[3] = bVar14;" (assignment_expression "pbVar11[3] = bVar14" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }" else (compound_statement "{\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }" { (expression_statement "*pbVar11 = bVar14;" (assignment_expression "*pbVar11 = bVar14" (pointer_expression "*pbVar11" * identifier) = identifier) ;) (expression_statement "pbVar11[1] = bVar12;" (assignment_expression "pbVar11[1] = bVar12" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[2] = bVar13;" (assignment_expression "pbVar11[2] = bVar13" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[3] = (byte)uVar15;" (assignment_expression "pbVar11[3] = (byte)uVar15" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar23 = 0x20;" (assignment_expression "uVar23 = 0x20" identifier = number_literal) ;) (expression_statement "param_2[0x14] = 0;" (assignment_expression "param_2[0x14] = 0" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "bVar1 = uVar23 < uVar9;" (assignment_expression "bVar1 = uVar23 < uVar9" identifier = (binary_expression "uVar23 < uVar9" identifier < identifier)) ;) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)uVar9)" ( (binary_expression "0 < (int)uVar9" number_literal < (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) })) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n            uVar8 = 0;\n          }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" else (compound_statement "{\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" { (expression_statement "dVar42 = ((double)fVar33 * dVar29) / dVar39;" (assignment_expression "dVar42 = ((double)fVar33 * dVar29) / dVar39" identifier = (binary_expression "((double)fVar33 * dVar29) / dVar39" (parenthesized_expression "((double)fVar33 * dVar29)" ( (binary_expression "(double)fVar33 * dVar29" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + dVar41)" ( (binary_expression "dVar42 + dVar41" identifier + identifier) ))) ;) (expression_statement "uVar8 = extraout_v1_07;" (assignment_expression "uVar8 = extraout_v1_07" identifier = identifier) ;) }) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }))) }))) (expression_statement "bVar1 = uVar23 < uVar21;" (assignment_expression "bVar1 = uVar23 < uVar21" identifier = (binary_expression "uVar23 < uVar21" identifier < identifier)) ;) (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" identifier = identifier) ;) (if_statement "if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" { (do_statement "do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);" do (compound_statement "{\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            }" { (expression_statement "uVar15 = uVar23;" (assignment_expression "uVar15 = uVar23" identifier = identifier) ;) (if_statement "if (!bVar1) {\n                uVar15 = uVar9;\n              }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n                uVar15 = uVar9;\n              }" { (expression_statement "uVar15 = uVar9;" (assignment_expression "uVar15 = uVar9" identifier = identifier) ;) })) (expression_statement "uVar10 = 0x20 - uVar23;" (assignment_expression "uVar10 = 0x20 - uVar23" identifier = (binary_expression "0x20 - uVar23" number_literal - identifier)) ;) (expression_statement "uVar23 = uVar23 - uVar15;" (assignment_expression "uVar23 = uVar23 - uVar15" identifier = (binary_expression "uVar23 - uVar15" identifier - identifier)) ;) (expression_statement "uVar16 = uVar9 - uVar15;" (assignment_expression "uVar16 = uVar9 - uVar15" identifier = (binary_expression "uVar9 - uVar15" identifier - identifier)) ;) (expression_statement "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);" (assignment_expression "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4)" identifier = (pointer_expression "*(uint *)(param_2[0x16] + uVar15 * 4)" * (cast_expression "(uint *)(param_2[0x16] + uVar15 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0x16] + uVar15 * 4)" ( (binary_expression "param_2[0x16] + uVar15 * 4" (subscript_expression "param_2[0x16]" identifier [ number_literal ]) + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;" (assignment_expression "uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" identifier = (binary_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" (binary_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f)" (parenthesized_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15)" ( (binary_expression "uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15" (binary_expression "uVar8 >> (uVar21 - uVar9 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 - uVar9 & 0x1f)" ( (binary_expression "uVar21 - uVar9 & 0x1f" (binary_expression "uVar21 - uVar9" identifier - identifier) & number_literal) ))) & identifier) )) << (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) | (subscript_expression "param_2[0x14]" 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 "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" identifier = identifier) ;) (if_statement "if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" { (expression_statement "pbVar11 = param_6 + 4;" (assignment_expression "pbVar11 = param_6 + 4" identifier = (binary_expression "param_6 + 4" identifier + number_literal)) ;) (expression_statement "bVar14 = (byte)(uVar9 >> 0x18);" (assignment_expression "bVar14 = (byte)(uVar9 >> 0x18)" identifier = (call_expression "(byte)(uVar9 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar9 >> 0x18)" ( (binary_expression "uVar9 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar9 >> 0x10);" (assignment_expression "bVar12 = (byte)(uVar9 >> 0x10)" identifier = (call_expression "(byte)(uVar9 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar9 >> 0x10)" ( (binary_expression "uVar9 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar9 >> 8);" (assignment_expression "bVar13 = (byte)(uVar9 >> 8)" identifier = (call_expression "(byte)(uVar9 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar9 >> 8)" ( (binary_expression "uVar9 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }" { (expression_statement "*param_6 = (byte)uVar9;" (assignment_expression "*param_6 = (byte)uVar9" (pointer_expression "*param_6" * identifier) = (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (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] = bVar14;" (assignment_expression "param_6[3] = bVar14" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }" else (compound_statement "{\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }" { (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 "param_6[2] = bVar13;" (assignment_expression "param_6[2] = bVar13" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = (byte)uVar9;" (assignment_expression "param_6[3] = (byte)uVar9" (subscript_expression "param_6[3]" identifier [ number_literal ]) = (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar23 = 0x20;" (assignment_expression "uVar23 = 0x20" identifier = number_literal) ;) (expression_statement "param_2[0x14] = 0;" (assignment_expression "param_2[0x14] = 0" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "bVar1 = uVar23 < uVar16;" (assignment_expression "bVar1 = uVar23 < uVar16" identifier = (binary_expression "uVar23 < uVar16" identifier < identifier)) ;) (expression_statement "uVar9 = uVar16;" (assignment_expression "uVar9 = uVar16" identifier = identifier) ;) (expression_statement "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) })) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n            uVar8 = 0;\n          }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" else (compound_statement "{\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" { (expression_statement "dVar42 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar42 = ((double)fVar33 * dVar40) / dVar38" identifier = (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" ( (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + dVar41)" ( (binary_expression "dVar42 + dVar41" identifier + identifier) ))) ;) (expression_statement "uVar8 = extraout_v1_08;" (assignment_expression "uVar8 = extraout_v1_08" identifier = identifier) ;) }) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }))) }))) (expression_statement "bVar1 = uVar23 < uVar21;" (assignment_expression "bVar1 = uVar23 < uVar21" identifier = (binary_expression "uVar23 < uVar21" identifier < identifier)) ;) (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) (expression_statement "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" identifier = identifier) ;) (if_statement "if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" { (do_statement "do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);" do (compound_statement "{\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            }" { (expression_statement "uVar15 = uVar23;" (assignment_expression "uVar15 = uVar23" identifier = identifier) ;) (if_statement "if (!bVar1) {\n                uVar15 = uVar9;\n              }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n                uVar15 = uVar9;\n              }" { (expression_statement "uVar15 = uVar9;" (assignment_expression "uVar15 = uVar9" identifier = identifier) ;) })) (expression_statement "uVar10 = 0x20 - uVar23;" (assignment_expression "uVar10 = 0x20 - uVar23" identifier = (binary_expression "0x20 - uVar23" number_literal - identifier)) ;) (expression_statement "uVar23 = uVar23 - uVar15;" (assignment_expression "uVar23 = uVar23 - uVar15" identifier = (binary_expression "uVar23 - uVar15" identifier - identifier)) ;) (expression_statement "uVar16 = uVar9 - uVar15;" (assignment_expression "uVar16 = uVar9 - uVar15" identifier = (binary_expression "uVar9 - uVar15" identifier - identifier)) ;) (expression_statement "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);" (assignment_expression "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4)" identifier = (pointer_expression "*(uint *)(param_2[0x16] + uVar15 * 4)" * (cast_expression "(uint *)(param_2[0x16] + uVar15 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0x16] + uVar15 * 4)" ( (binary_expression "param_2[0x16] + uVar15 * 4" (subscript_expression "param_2[0x16]" identifier [ number_literal ]) + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;" (assignment_expression "uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" identifier = (binary_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" (binary_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f)" (parenthesized_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15)" ( (binary_expression "uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15" (binary_expression "uVar8 >> (uVar21 - uVar9 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 - uVar9 & 0x1f)" ( (binary_expression "uVar21 - uVar9 & 0x1f" (binary_expression "uVar21 - uVar9" identifier - identifier) & number_literal) ))) & identifier) )) << (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) | (subscript_expression "param_2[0x14]" 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 "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" identifier = identifier) ;) (if_statement "if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" { (expression_statement "param_6 = pbVar11 + 4;" (assignment_expression "param_6 = pbVar11 + 4" identifier = (binary_expression "pbVar11 + 4" identifier + number_literal)) ;) (expression_statement "bVar14 = (byte)(uVar9 >> 0x18);" (assignment_expression "bVar14 = (byte)(uVar9 >> 0x18)" identifier = (call_expression "(byte)(uVar9 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar9 >> 0x18)" ( (binary_expression "uVar9 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar9 >> 0x10);" (assignment_expression "bVar12 = (byte)(uVar9 >> 0x10)" identifier = (call_expression "(byte)(uVar9 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar9 >> 0x10)" ( (binary_expression "uVar9 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar9 >> 8);" (assignment_expression "bVar13 = (byte)(uVar9 >> 8)" identifier = (call_expression "(byte)(uVar9 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar9 >> 8)" ( (binary_expression "uVar9 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }" { (expression_statement "*pbVar11 = (byte)uVar9;" (assignment_expression "*pbVar11 = (byte)uVar9" (pointer_expression "*pbVar11" * identifier) = (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar11[1] = bVar13;" (assignment_expression "pbVar11[1] = bVar13" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[2] = bVar12;" (assignment_expression "pbVar11[2] = bVar12" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[3] = bVar14;" (assignment_expression "pbVar11[3] = bVar14" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }" else (compound_statement "{\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }" { (expression_statement "*pbVar11 = bVar14;" (assignment_expression "*pbVar11 = bVar14" (pointer_expression "*pbVar11" * identifier) = identifier) ;) (expression_statement "pbVar11[1] = bVar12;" (assignment_expression "pbVar11[1] = bVar12" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[2] = bVar13;" (assignment_expression "pbVar11[2] = bVar13" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[3] = (byte)uVar9;" (assignment_expression "pbVar11[3] = (byte)uVar9" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar23 = 0x20;" (assignment_expression "uVar23 = 0x20" identifier = number_literal) ;) (expression_statement "param_2[0x14] = 0;" (assignment_expression "param_2[0x14] = 0" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "bVar1 = uVar23 < uVar16;" (assignment_expression "bVar1 = uVar23 < uVar16" identifier = (binary_expression "uVar23 < uVar16" identifier < identifier)) ;) (expression_statement "uVar9 = uVar16;" (assignment_expression "uVar9 = uVar16" identifier = identifier) ;) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) })) (if_statement "if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0))" ( (binary_expression "(*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)" (parenthesized_expression "(*(int *)(iVar24 + 0x34) != 4)" ( (binary_expression "*(int *)(iVar24 + 0x34) != 4" (pointer_expression "*(int *)(iVar24 + 0x34)" * (cast_expression "(int *)(iVar24 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x34)" ( (binary_expression "iVar24 + 0x34" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)" ( (comma_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" identifier = (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x38) * 4" (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) , (binary_expression "fVar33 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n            uVar8 = 0;\n          }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" else (compound_statement "{\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" { (expression_statement "dVar42 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar42 = ((double)fVar33 * dVar40) / dVar38" identifier = (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" ( (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400))" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + *(double *)(puVar2 + 0x1400))" ( (binary_expression "dVar42 + *(double *)(puVar2 + 0x1400)" identifier + (pointer_expression "*(double *)(puVar2 + 0x1400)" * (cast_expression "(double *)(puVar2 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1400)" ( (binary_expression "puVar2 + 0x1400" identifier + number_literal) ))))) ))) ;) (expression_statement "uVar8 = extraout_v1_09;" (assignment_expression "uVar8 = extraout_v1_09" identifier = identifier) ;) }) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }))) }))) (expression_statement "uVar23 = uVar21;" (assignment_expression "uVar23 = uVar21" identifier = identifier) ;) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" identifier = identifier) ;) (if_statement "if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }" { (while_statement "while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }" { (expression_statement "uVar15 = param_2[0x15];" (assignment_expression "uVar15 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = uVar15;" (assignment_expression "uVar9 = uVar15" identifier = identifier) ;) (if_statement "if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }" if (parenthesized_expression "(uVar23 <= uVar15)" ( (binary_expression "uVar23 <= uVar15" identifier <= identifier) )) (compound_statement "{\n                uVar9 = uVar23;\n              }" { (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" identifier = identifier) ;) })) (expression_statement "uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);" (assignment_expression "uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4)" identifier = (pointer_expression "*(uint *)(param_2[0x16] + uVar9 * 4)" * (cast_expression "(uint *)(param_2[0x16] + uVar9 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0x16] + uVar9 * 4)" ( (binary_expression "param_2[0x16] + uVar9 * 4" (subscript_expression "param_2[0x16]" identifier [ number_literal ]) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (expression_statement "param_2[0x15] = uVar15 - uVar9;" (assignment_expression "param_2[0x15] = uVar15 - uVar9" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = (binary_expression "uVar15 - uVar9" identifier - identifier)) ;) (expression_statement "uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];" (assignment_expression "uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14]" identifier = (binary_expression "(uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14]" (binary_expression "(uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f)" (parenthesized_expression "(uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10)" ( (binary_expression "uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10" (binary_expression "uVar8 >> (uVar21 - uVar23 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 - uVar23 & 0x1f)" ( (binary_expression "uVar21 - uVar23 & 0x1f" (binary_expression "uVar21 - uVar23" identifier - identifier) & number_literal) ))) & identifier) )) << (parenthesized_expression "(0x20 - uVar15 & 0x1f)" ( (binary_expression "0x20 - uVar15 & 0x1f" (binary_expression "0x20 - uVar15" number_literal - identifier) & number_literal) ))) | (subscript_expression "param_2[0x14]" identifier [ number_literal ]))) ;) (expression_statement "param_2[0x14] = uVar21;" (assignment_expression "param_2[0x14] = uVar21" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" identifier = identifier) ;) (if_statement "if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" if (parenthesized_expression "(uVar15 - uVar9 == 0)" ( (binary_expression "uVar15 - uVar9 == 0" (binary_expression "uVar15 - uVar9" identifier - identifier) == number_literal) )) (compound_statement "{\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" { (expression_statement "param_6 = pbVar11 + 4;" (assignment_expression "param_6 = pbVar11 + 4" identifier = (binary_expression "pbVar11 + 4" identifier + number_literal)) ;) (expression_statement "bVar14 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar14 = (byte)(uVar21 >> 0x18)" identifier = (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x18)" ( (binary_expression "uVar21 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar12 = (byte)(uVar21 >> 0x10)" identifier = (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x10)" ( (binary_expression "uVar21 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar21 >> 8);" (assignment_expression "bVar13 = (byte)(uVar21 >> 8)" identifier = (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 8)" ( (binary_expression "uVar21 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }" { (expression_statement "*pbVar11 = (byte)uVar21;" (assignment_expression "*pbVar11 = (byte)uVar21" (pointer_expression "*pbVar11" * identifier) = (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar11[1] = bVar13;" (assignment_expression "pbVar11[1] = bVar13" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[2] = bVar12;" (assignment_expression "pbVar11[2] = bVar12" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[3] = bVar14;" (assignment_expression "pbVar11[3] = bVar14" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }" else (compound_statement "{\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }" { (expression_statement "*pbVar11 = bVar14;" (assignment_expression "*pbVar11 = bVar14" (pointer_expression "*pbVar11" * identifier) = identifier) ;) (expression_statement "pbVar11[1] = bVar12;" (assignment_expression "pbVar11[1] = bVar12" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[2] = bVar13;" (assignment_expression "pbVar11[2] = bVar13" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[3] = (byte)uVar21;" (assignment_expression "pbVar11[3] = (byte)uVar21" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "param_2[0x14] = 0;" (assignment_expression "param_2[0x14] = 0" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if ((int)(uVar23 - uVar9) < 1) break;" if (parenthesized_expression "((int)(uVar23 - uVar9) < 1)" ( (binary_expression "(int)(uVar23 - uVar9) < 1" (cast_expression "(int)(uVar23 - uVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar23 - uVar9)" ( (binary_expression "uVar23 - uVar9" identifier - identifier) ))) < number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" identifier = (binary_expression "uVar23 - uVar9" identifier - identifier)) ;) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" identifier = identifier) ;) })) })) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10];" (assignment_expression "param_6 = param_6 + param_2[10]" identifier = (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ]))) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iVar22 == param_4) break;" if (parenthesized_expression "(iVar22 == param_4)" ( (binary_expression "iVar22 == param_4" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (return_statement "return;" return ;) })) (if_statement "if (param_4 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);" (assignment_expression "dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x7538)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x7538)" ( (binary_expression "PTR_s_courses_003a88ec + -0x7538" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = 10;" (assignment_expression "uVar21 = 10" identifier = number_literal) ;) (expression_statement "dVar25 = dVar37;" (assignment_expression "dVar25 = dVar37" identifier = identifier) ;) (expression_statement "dVar26 = dVar38;" (assignment_expression "dVar26 = dVar38" identifier = identifier) ;) (expression_statement "dVar27 = dVar40;" (assignment_expression "dVar27 = dVar40" identifier = identifier) ;) (expression_statement "dVar28 = dVar41;" (assignment_expression "dVar28 = dVar41" identifier = identifier) ;) (expression_statement "dVar29 = dVar40;" (assignment_expression "dVar29 = dVar40" identifier = identifier) ;) (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" identifier = identifier) ;) (do_statement "do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );" do (compound_statement "{\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      }" { (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 8) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 8) * 4" identifier + (binary_expression "*(int *)(iVar24 + 8) * 4" (pointer_expression "*(int *)(iVar24 + 8)" * (cast_expression "(int *)(iVar24 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }" if (parenthesized_expression "(NAN(fVar33))" ( (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier ))) )) (compound_statement "{\n          uVar8 = 0;\n        }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }" else (compound_statement "{\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(0.0 < fVar33)" ( (binary_expression "0.0 < fVar33" number_literal < identifier) )) (compound_statement "{\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" { (expression_statement "dVar42 = ((double)fVar33 * dVar27) / dVar26;" (assignment_expression "dVar42 = ((double)fVar33 * dVar27) / dVar26" identifier = (binary_expression "((double)fVar33 * dVar27) / dVar26" (parenthesized_expression "((double)fVar33 * dVar27)" ( (binary_expression "(double)fVar33 * dVar27" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar42 < dVar25)" ( (binary_expression "dVar42 < dVar25" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar28)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + dVar28)" ( (binary_expression "dVar42 + dVar28" identifier + identifier) ))) ;) (expression_statement "uVar8 = extraout_v1_02;" (assignment_expression "uVar8 = extraout_v1_02" identifier = identifier) ;) }) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }))) })) }))) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) (if_statement "if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }" { (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (!NAN(fVar33)) goto LAB_00166458;" if (parenthesized_expression "(!NAN(fVar33))" ( (unary_expression "!NAN(fVar33)" ! (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier )))) )) (goto_statement "goto LAB_00166458;" goto statement_identifier ;)) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" else (compound_statement "{\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" { (do_statement "do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);" do (compound_statement "{\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          }" { (while_statement "while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }" { (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }" if (parenthesized_expression "(uVar21 <= uVar23)" ( (binary_expression "uVar21 <= uVar23" identifier <= identifier) )) (compound_statement "{\n                uVar9 = uVar21;\n              }" { (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" identifier = (binary_expression "uVar21 - uVar9" identifier - identifier)) ;) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                uVar21 = 0;\n              }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar23 == 8) {\n                *param_6 = 0;\n              }" if (parenthesized_expression "(uVar23 == 8)" ( (binary_expression "uVar23 == 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 "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar8 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar10 = 0;\n              }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" identifier = (binary_expression "uVar23 - uVar9" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" ( (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar9 & 0x1f))" ( (binary_expression "-1 << (uVar9 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }" if (parenthesized_expression "((uVar23 & 0x20) != 0)" ( (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" ( (binary_expression "uVar23 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                bVar13 = 0;\n              }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar15 < 1) goto LAB_00166434;" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00166434;" goto statement_identifier ;)) })) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);" statement_identifier : (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;)) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(NAN(fVar33))" ( (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier ))) )) (compound_statement "{\nLAB_00166cbc:\n            uVar8 = 0;\n          }" { (labeled_statement "LAB_00166cbc:\n            uVar8 = 0;" statement_identifier : (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" else (compound_statement "{\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" { (labeled_statement "LAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;" statement_identifier : (if_statement "if (fVar33 <= 0.0) goto LAB_00166cbc;" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00166cbc;" goto statement_identifier ;))) (expression_statement "dVar42 = ((double)fVar33 * dVar29) / dVar39;" (assignment_expression "dVar42 = ((double)fVar33 * dVar29) / dVar39" identifier = (binary_expression "((double)fVar33 * dVar29) / dVar39" (parenthesized_expression "((double)fVar33 * dVar29)" ( (binary_expression "(double)fVar33 * dVar29" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + dVar41)" ( (binary_expression "dVar42 + dVar41" identifier + identifier) ))) ;) (expression_statement "uVar8 = extraout_v1_03;" (assignment_expression "uVar8 = extraout_v1_03" identifier = identifier) ;) }) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }))) }))) (if_statement "if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }" { (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) }))) (if_statement "if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (!NAN(fVar33)) goto LAB_00166550;" if (parenthesized_expression "(!NAN(fVar33))" ( (unary_expression "!NAN(fVar33)" ! (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier )))) )) (goto_statement "goto LAB_00166550;" goto statement_identifier ;)) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" else (compound_statement "{\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" { (do_statement "do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);" do (compound_statement "{\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          }" { (while_statement "while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }" { (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }" if (parenthesized_expression "(uVar21 <= uVar23)" ( (binary_expression "uVar21 <= uVar23" identifier <= identifier) )) (compound_statement "{\n                uVar9 = uVar21;\n              }" { (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" identifier = (binary_expression "uVar21 - uVar9" identifier - identifier)) ;) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                uVar21 = 0;\n              }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar23 == 8) {\n                *param_6 = 0;\n              }" if (parenthesized_expression "(uVar23 == 8)" ( (binary_expression "uVar23 == 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 "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar8 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar10 = 0;\n              }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" identifier = (binary_expression "uVar23 - uVar9" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" ( (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar9 & 0x1f))" ( (binary_expression "-1 << (uVar9 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }" if (parenthesized_expression "((uVar23 & 0x20) != 0)" ( (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" ( (binary_expression "uVar23 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                bVar13 = 0;\n              }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar15 < 1) goto LAB_0016652c;" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0016652c;" goto statement_identifier ;)) })) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);" statement_identifier : (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;)) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(NAN(fVar33))" ( (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier ))) )) (compound_statement "{\nLAB_00166cb4:\n            uVar8 = 0;\n          }" { (labeled_statement "LAB_00166cb4:\n            uVar8 = 0;" statement_identifier : (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" else (compound_statement "{\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" { (labeled_statement "LAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;" statement_identifier : (if_statement "if (fVar33 <= 0.0) goto LAB_00166cb4;" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00166cb4;" goto statement_identifier ;))) (expression_statement "dVar42 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar42 = ((double)fVar33 * dVar40) / dVar38" identifier = (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" ( (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + dVar41)" ( (binary_expression "dVar42 + dVar41" identifier + identifier) ))) ;) (expression_statement "uVar8 = extraout_v1_04;" (assignment_expression "uVar8 = extraout_v1_04" identifier = identifier) ;) }) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }))) }))) (if_statement "if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }" { (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) }))) (if_statement "if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = uVar21;" (assignment_expression "uVar8 = uVar21" identifier = identifier) ;) (if_statement "if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;" if (parenthesized_expression "(*(int *)(iVar24 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar24 + 0x34) == 4" (pointer_expression "*(int *)(iVar24 + 0x34)" * (cast_expression "(int *)(iVar24 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x34)" ( (binary_expression "iVar24 + 0x34" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00166c44;" goto statement_identifier ;)) }) (else_clause "else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }" else (compound_statement "{\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }" { (do_statement "do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);" do (compound_statement "{\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          }" { (while_statement "while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }" { (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }" if (parenthesized_expression "(uVar21 <= uVar23)" ( (binary_expression "uVar21 <= uVar23" identifier <= identifier) )) (compound_statement "{\n                uVar9 = uVar21;\n              }" { (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" identifier = (binary_expression "uVar21 - uVar9" identifier - identifier)) ;) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                uVar21 = 0;\n              }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar23 == 8) {\n                *param_6 = 0;\n              }" if (parenthesized_expression "(uVar23 == 8)" ( (binary_expression "uVar23 == 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 "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar8 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar10 = 0;\n              }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" identifier = (binary_expression "uVar23 - uVar9" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" ( (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar9 & 0x1f))" ( (binary_expression "-1 << (uVar9 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }" if (parenthesized_expression "((uVar23 & 0x20) != 0)" ( (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" ( (binary_expression "uVar23 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                bVar13 = 0;\n              }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar15 < 1) goto LAB_0016662c;" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0016662c;" goto statement_identifier ;)) })) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);" statement_identifier : (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;)) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }" if (parenthesized_expression "(*(int *)(iVar24 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar24 + 0x34) == 4" (pointer_expression "*(int *)(iVar24 + 0x34)" * (cast_expression "(int *)(iVar24 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x34)" ( (binary_expression "iVar24 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" { (labeled_statement "LAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);" statement_identifier : (expression_statement "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" identifier = (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x38) * 4" (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;)) (if_statement "if (fVar33 <= 0.0) goto LAB_00166640;" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00166640;" goto statement_identifier ;)) (expression_statement "dVar42 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar42 = ((double)fVar33 * dVar40) / dVar38" identifier = (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" ( (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400))" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + *(double *)(puVar2 + 0x1400))" ( (binary_expression "dVar42 + *(double *)(puVar2 + 0x1400)" identifier + (pointer_expression "*(double *)(puVar2 + 0x1400)" * (cast_expression "(double *)(puVar2 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1400)" ( (binary_expression "puVar2 + 0x1400" identifier + number_literal) ))))) ))) ;) (expression_statement "uVar9 = extraout_v1_05;" (assignment_expression "uVar9 = extraout_v1_05" identifier = identifier) ;) }) (else_clause "else {\n              uVar9 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar9 = 0xffffffff;\n            }" { (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) }))) }) (else_clause "else {\nLAB_00166640:\n            uVar9 = 0;\n          }" else (compound_statement "{\nLAB_00166640:\n            uVar9 = 0;\n          }" { (labeled_statement "LAB_00166640:\n            uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) }))) (expression_statement "uVar8 = uVar21;" (assignment_expression "uVar8 = uVar21" identifier = identifier) ;) (if_statement "if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n            param_2[0x15] = 8;\n          }" { (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) }))) (while_statement "while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }" while (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }" { (expression_statement "uVar15 = param_2[0x15];" (assignment_expression "uVar15 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = uVar15;" (assignment_expression "uVar23 = uVar15" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }" if (parenthesized_expression "(uVar21 <= uVar15)" ( (binary_expression "uVar21 <= uVar15" identifier <= identifier) )) (compound_statement "{\n            uVar23 = uVar21;\n          }" { (expression_statement "uVar23 = uVar21;" (assignment_expression "uVar23 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar8 = uVar21 - uVar23;" (assignment_expression "uVar8 = uVar21 - uVar23" identifier = (binary_expression "uVar21 - uVar23" identifier - identifier)) ;) (expression_statement "uVar21 = uVar8;" (assignment_expression "uVar21 = uVar8" identifier = identifier) ;) (if_statement "if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar21 = 0;\n          }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar15 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar15 == 8)" ( (binary_expression "uVar15 == 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 "uVar10 = uVar9 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar9 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar9 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar10 = 0;\n          }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (expression_statement "uVar15 = uVar15 - uVar23;" (assignment_expression "uVar15 = uVar15 - uVar23" identifier = (binary_expression "uVar15 - uVar23" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar15;" (assignment_expression "param_2[0x15] = uVar15" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f))" ( (binary_expression "(~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar23 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar23 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar23 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar23 & 0x1f))" ( (binary_expression "-1 << (uVar23 & 0x1f)" number_literal << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar15 & 0x1f)" ( (binary_expression "uVar15 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }" if (parenthesized_expression "((uVar15 & 0x20) != 0)" ( (binary_expression "(uVar15 & 0x20) != 0" (parenthesized_expression "(uVar15 & 0x20)" ( (binary_expression "uVar15 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar13 = 0;\n          }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            param_6 = param_6 + 1;\n            param_2[0x15] = 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10];" (assignment_expression "param_6 = param_6 + param_2[10]" identifier = (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ]))) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iVar22 == param_4) {\n          return;\n        }" if (parenthesized_expression "(iVar22 == param_4)" ( (binary_expression "iVar22 == param_4" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }" statement_identifier : (if_statement "if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }" { (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0016507c;" goto statement_identifier ;) }))) }) (else_clause "else {\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }" else (compound_statement "{\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }" { (if_statement "if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }" if (parenthesized_expression "(uVar21 == 0x20)" ( (binary_expression "uVar21 == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }" { (if_statement "if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\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_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }" { (if_statement "if (param_4 < 1) {\n          return;\n        }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (do_statement "do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);" do (compound_statement "{\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        }" { (expression_statement "fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));" (assignment_expression "fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" identifier = (cast_expression "(float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) )))) ;) (expression_statement "bVar14 = (byte)((uint)fVar33 >> 8);" (assignment_expression "bVar14 = (byte)((uint)fVar33 >> 8)" identifier = (call_expression "(byte)((uint)fVar33 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 8)" ( (binary_expression "(uint)fVar33 >> 8" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((uint)fVar33 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar33 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x10)" ( (binary_expression "(uint)fVar33 >> 0x10" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)((uint)fVar33 >> 0x18);" (assignment_expression "bVar13 = (byte)((uint)fVar33 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x18)" ( (binary_expression "(uint)fVar33 >> 0x18" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }" { (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (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 "param_6[2] = bVar14;" (assignment_expression "param_6[2] = bVar14" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = SUB41(fVar33,0);" (assignment_expression "param_6[3] = SUB41(fVar33,0)" (subscript_expression "param_6[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }" else (compound_statement "{\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }" { (expression_statement "*param_6 = SUB41(fVar33,0);" (assignment_expression "*param_6 = SUB41(fVar33,0)" (pointer_expression "*param_6" * identifier) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[1] = bVar14;" (assignment_expression "param_6[1] = bVar14" (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] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));" (assignment_expression "fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" identifier = (cast_expression "(float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (binary_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (binary_expression "param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) )))) ;) (expression_statement "bVar14 = (byte)((uint)fVar33 >> 8);" (assignment_expression "bVar14 = (byte)((uint)fVar33 >> 8)" identifier = (call_expression "(byte)((uint)fVar33 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 8)" ( (binary_expression "(uint)fVar33 >> 8" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((uint)fVar33 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar33 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x10)" ( (binary_expression "(uint)fVar33 >> 0x10" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)((uint)fVar33 >> 0x18);" (assignment_expression "bVar13 = (byte)((uint)fVar33 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x18)" ( (binary_expression "(uint)fVar33 >> 0x18" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }" { (expression_statement "param_6[4] = bVar13;" (assignment_expression "param_6[4] = bVar13" (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) ;) (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] = SUB41(fVar33,0);" (assignment_expression "param_6[7] = SUB41(fVar33,0)" (subscript_expression "param_6[7]" identifier [ number_literal ]) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }" else (compound_statement "{\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }" { (expression_statement "param_6[4] = SUB41(fVar33,0);" (assignment_expression "param_6[4] = SUB41(fVar33,0)" (subscript_expression "param_6[4]" identifier [ number_literal ]) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[5] = bVar14;" (assignment_expression "param_6[5] = bVar14" (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] = bVar13;" (assignment_expression "param_6[7] = bVar13" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));" (assignment_expression "fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" identifier = (cast_expression "(float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (binary_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (binary_expression "param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) )))) ;) (expression_statement "bVar14 = (byte)((uint)fVar33 >> 8);" (assignment_expression "bVar14 = (byte)((uint)fVar33 >> 8)" identifier = (call_expression "(byte)((uint)fVar33 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 8)" ( (binary_expression "(uint)fVar33 >> 8" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((uint)fVar33 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar33 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x10)" ( (binary_expression "(uint)fVar33 >> 0x10" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)((uint)fVar33 >> 0x18);" (assignment_expression "bVar13 = (byte)((uint)fVar33 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x18)" ( (binary_expression "(uint)fVar33 >> 0x18" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }" { (expression_statement "param_6[8] = bVar13;" (assignment_expression "param_6[8] = bVar13" (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[10] = bVar14;" (assignment_expression "param_6[10] = bVar14" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = SUB41(fVar33,0);" (assignment_expression "param_6[0xb] = SUB41(fVar33,0)" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }" else (compound_statement "{\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }" { (expression_statement "param_6[8] = SUB41(fVar33,0);" (assignment_expression "param_6[8] = SUB41(fVar33,0)" (subscript_expression "param_6[8]" identifier [ number_literal ]) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[9] = bVar14;" (assignment_expression "param_6[9] = bVar14" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (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] = bVar13;" (assignment_expression "param_6[0xb] = bVar13" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }" { (expression_statement "dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));" (assignment_expression "dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" identifier = (cast_expression "(double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" ( (binary_expression "fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" * (cast_expression "(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (binary_expression "param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) )))) ;) }) (else_clause "else {\n            dVar25 = 0.0;\n          }" else (compound_statement "{\n            dVar25 = 0.0;\n          }" { (expression_statement "dVar25 = 0.0;" (assignment_expression "dVar25 = 0.0" identifier = number_literal) ;) }))) (expression_statement "fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));" (assignment_expression "fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" identifier = (cast_expression "(float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (binary_expression "dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "dVar25 * *(double *)(param_2 + 0x12)" identifier * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) )))) ;) (expression_statement "bVar14 = (byte)((uint)fVar33 >> 8);" (assignment_expression "bVar14 = (byte)((uint)fVar33 >> 8)" identifier = (call_expression "(byte)((uint)fVar33 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 8)" ( (binary_expression "(uint)fVar33 >> 8" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((uint)fVar33 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar33 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x10)" ( (binary_expression "(uint)fVar33 >> 0x10" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)((uint)fVar33 >> 0x18);" (assignment_expression "bVar13 = (byte)((uint)fVar33 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x18)" ( (binary_expression "(uint)fVar33 >> 0x18" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }" { (expression_statement "param_6[0xc] = bVar13;" (assignment_expression "param_6[0xc] = bVar13" (subscript_expression "param_6[0xc]" 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[0xe] = bVar14;" (assignment_expression "param_6[0xe] = bVar14" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = SUB41(fVar33,0);" (assignment_expression "param_6[0xf] = SUB41(fVar33,0)" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }" else (compound_statement "{\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }" { (expression_statement "param_6[0xc] = SUB41(fVar33,0);" (assignment_expression "param_6[0xc] = SUB41(fVar33,0)" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0xd] = bVar14;" (assignment_expression "param_6[0xd] = bVar14" (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] = bVar13;" (assignment_expression "param_6[0xf] = bVar13" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10] + 0x10;" (assignment_expression "param_6 = param_6 + param_2[10] + 0x10" identifier = (binary_expression "param_6 + param_2[10] + 0x10" (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar22 != param_4)" ( (binary_expression "iVar22 != param_4" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if (param_4 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);" (assignment_expression "dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00" identifier + number_literal) ))))) ;) (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);" (assignment_expression "dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (do_statement "do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );" do (compound_statement "{\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }" { (expression_statement "bVar6 = 0;" (assignment_expression "bVar6 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x11] != 1) goto LAB_00165ecc;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165ecc;" goto statement_identifier ;)) (labeled_statement "LAB_001660ec:\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] = bVar17;" (assignment_expression "param_6[1] = bVar17" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = bVar18;" (assignment_expression "param_6[2] = bVar18" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = bVar20;" (assignment_expression "param_6[3] = bVar20" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }" { (expression_statement "dVar29 = (double)fVar33 * dVar26;" (assignment_expression "dVar29 = (double)fVar33 * dVar26" identifier = (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" if (parenthesized_expression "(dVar29 < dVar25)" ( (binary_expression "dVar29 < dVar25" identifier < identifier) )) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }" { (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" if (parenthesized_expression "(dVar29 < dVar27)" ( (binary_expression "dVar29 < dVar27" identifier < identifier) )) (compound_statement "{\n              uVar21 = (uint)dVar29;\n            }" { (expression_statement "uVar21 = (uint)dVar29;" (assignment_expression "uVar21 = (uint)dVar29" identifier = (cast_expression "(uint)dVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" else (compound_statement "{\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" { (expression_statement "uVar21 = (int)(dVar29 - dVar27) | 0x80000000;" (assignment_expression "uVar21 = (int)(dVar29 - dVar27) | 0x80000000" identifier = (binary_expression "(int)(dVar29 - dVar27) | 0x80000000" (cast_expression "(int)(dVar29 - dVar27)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar29 - dVar27)" ( (binary_expression "dVar29 - dVar27" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "bVar19 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar19 = (byte)(uVar21 >> 0x18)" identifier = (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x18)" ( (binary_expression "uVar21 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar13 = (byte)(uVar21 >> 0x10)" identifier = (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x10)" ( (binary_expression "uVar21 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" identifier = (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 8)" ( (binary_expression "uVar21 >> 8" identifier >> number_literal) )))) ;) (expression_statement "bVar6 = (byte)uVar21;" (assignment_expression "bVar6 = (byte)uVar21" identifier = (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" else (compound_statement "{\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" { (expression_statement "bVar6 = 0xff;" (assignment_expression "bVar6 = 0xff" identifier = number_literal) ;) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) }))) (expression_statement "bVar14 = bVar6;" (assignment_expression "bVar14 = bVar6" identifier = identifier) ;) (expression_statement "bVar17 = bVar12;" (assignment_expression "bVar17 = bVar12" identifier = identifier) ;) (expression_statement "bVar18 = bVar13;" (assignment_expression "bVar18 = bVar13" identifier = identifier) ;) (expression_statement "bVar20 = bVar19;" (assignment_expression "bVar20 = bVar19" identifier = identifier) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_001660ec;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_001660ec;" goto statement_identifier ;)) (labeled_statement "LAB_00165ecc:\n          *param_6 = bVar19;" statement_identifier : (expression_statement "*param_6 = bVar19;" (assignment_expression "*param_6 = bVar19" (pointer_expression "*param_6" * identifier) = identifier) ;)) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (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] = bVar6;" (assignment_expression "param_6[3] = bVar6" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }" { (expression_statement "bVar6 = 0;" (assignment_expression "bVar6 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x11] != 1) goto LAB_00165f54;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165f54;" goto statement_identifier ;)) (labeled_statement "LAB_0016611c:\n          param_6[4] = bVar14;" statement_identifier : (expression_statement "param_6[4] = bVar14;" (assignment_expression "param_6[4] = bVar14" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[5] = bVar17;" (assignment_expression "param_6[5] = bVar17" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = bVar18;" (assignment_expression "param_6[6] = bVar18" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = bVar20;" (assignment_expression "param_6[7] = bVar20" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }" { (expression_statement "dVar29 = (double)fVar33 * dVar26;" (assignment_expression "dVar29 = (double)fVar33 * dVar26" identifier = (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" if (parenthesized_expression "(dVar29 < dVar25)" ( (binary_expression "dVar29 < dVar25" identifier < identifier) )) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }" { (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" if (parenthesized_expression "(dVar29 < dVar27)" ( (binary_expression "dVar29 < dVar27" identifier < identifier) )) (compound_statement "{\n              uVar21 = (uint)dVar29;\n            }" { (expression_statement "uVar21 = (uint)dVar29;" (assignment_expression "uVar21 = (uint)dVar29" identifier = (cast_expression "(uint)dVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" else (compound_statement "{\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" { (expression_statement "uVar21 = (int)(dVar29 - dVar27) | 0x80000000;" (assignment_expression "uVar21 = (int)(dVar29 - dVar27) | 0x80000000" identifier = (binary_expression "(int)(dVar29 - dVar27) | 0x80000000" (cast_expression "(int)(dVar29 - dVar27)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar29 - dVar27)" ( (binary_expression "dVar29 - dVar27" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "bVar19 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar19 = (byte)(uVar21 >> 0x18)" identifier = (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x18)" ( (binary_expression "uVar21 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar13 = (byte)(uVar21 >> 0x10)" identifier = (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x10)" ( (binary_expression "uVar21 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" identifier = (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 8)" ( (binary_expression "uVar21 >> 8" identifier >> number_literal) )))) ;) (expression_statement "bVar6 = (byte)uVar21;" (assignment_expression "bVar6 = (byte)uVar21" identifier = (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" else (compound_statement "{\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" { (expression_statement "bVar6 = 0xff;" (assignment_expression "bVar6 = 0xff" identifier = number_literal) ;) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) }))) (expression_statement "bVar14 = bVar6;" (assignment_expression "bVar14 = bVar6" identifier = identifier) ;) (expression_statement "bVar17 = bVar12;" (assignment_expression "bVar17 = bVar12" identifier = identifier) ;) (expression_statement "bVar18 = bVar13;" (assignment_expression "bVar18 = bVar13" identifier = identifier) ;) (expression_statement "bVar20 = bVar19;" (assignment_expression "bVar20 = bVar19" identifier = identifier) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_0016611c;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0016611c;" goto statement_identifier ;)) (labeled_statement "LAB_00165f54:\n          param_6[4] = bVar19;" statement_identifier : (expression_statement "param_6[4] = bVar19;" (assignment_expression "param_6[4] = bVar19" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[5] = bVar13;" (assignment_expression "param_6[5] = bVar13" (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] = bVar6;" (assignment_expression "param_6[7] = bVar6" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }" { (expression_statement "bVar6 = 0;" (assignment_expression "bVar6 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x11] != 1) goto LAB_00165fe8;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165fe8;" goto statement_identifier ;)) (labeled_statement "LAB_001660b8:\n          param_6[8] = bVar14;" statement_identifier : (expression_statement "param_6[8] = bVar14;" (assignment_expression "param_6[8] = bVar14" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[9] = bVar17;" (assignment_expression "param_6[9] = bVar17" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[10] = bVar18;" (assignment_expression "param_6[10] = bVar18" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = bVar20;" (assignment_expression "param_6[0xb] = bVar20" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }" { (expression_statement "dVar29 = (double)fVar33 * dVar26;" (assignment_expression "dVar29 = (double)fVar33 * dVar26" identifier = (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" if (parenthesized_expression "(dVar29 < dVar25)" ( (binary_expression "dVar29 < dVar25" identifier < identifier) )) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }" { (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" if (parenthesized_expression "(dVar29 < dVar27)" ( (binary_expression "dVar29 < dVar27" identifier < identifier) )) (compound_statement "{\n              uVar21 = (uint)dVar29;\n            }" { (expression_statement "uVar21 = (uint)dVar29;" (assignment_expression "uVar21 = (uint)dVar29" identifier = (cast_expression "(uint)dVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" else (compound_statement "{\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" { (expression_statement "uVar21 = (int)(dVar29 - dVar27) | 0x80000000;" (assignment_expression "uVar21 = (int)(dVar29 - dVar27) | 0x80000000" identifier = (binary_expression "(int)(dVar29 - dVar27) | 0x80000000" (cast_expression "(int)(dVar29 - dVar27)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar29 - dVar27)" ( (binary_expression "dVar29 - dVar27" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "bVar19 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar19 = (byte)(uVar21 >> 0x18)" identifier = (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x18)" ( (binary_expression "uVar21 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar13 = (byte)(uVar21 >> 0x10)" identifier = (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x10)" ( (binary_expression "uVar21 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" identifier = (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 8)" ( (binary_expression "uVar21 >> 8" identifier >> number_literal) )))) ;) (expression_statement "bVar6 = (byte)uVar21;" (assignment_expression "bVar6 = (byte)uVar21" identifier = (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" else (compound_statement "{\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" { (expression_statement "bVar6 = 0xff;" (assignment_expression "bVar6 = 0xff" identifier = number_literal) ;) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) }))) (expression_statement "bVar14 = bVar6;" (assignment_expression "bVar14 = bVar6" identifier = identifier) ;) (expression_statement "bVar17 = bVar12;" (assignment_expression "bVar17 = bVar12" identifier = identifier) ;) (expression_statement "bVar18 = bVar13;" (assignment_expression "bVar18 = bVar13" identifier = identifier) ;) (expression_statement "bVar20 = bVar19;" (assignment_expression "bVar20 = bVar19" identifier = identifier) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_001660b8;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_001660b8;" goto statement_identifier ;)) (labeled_statement "LAB_00165fe8:\n          param_6[8] = bVar19;" statement_identifier : (expression_statement "param_6[8] = bVar19;" (assignment_expression "param_6[8] = bVar19" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[9] = bVar13;" (assignment_expression "param_6[9] = bVar13" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (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] = bVar6;" (assignment_expression "param_6[0xb] = bVar6" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)" ( (comma_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier = (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) , (binary_expression "fVar33 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }" { (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;" statement_identifier : (if_statement "if (param_2[0x11] != 1) goto LAB_00165e24;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165e24;" goto statement_identifier ;))) (labeled_statement "LAB_00166084:\n          param_6[0xc] = bVar14;" statement_identifier : (expression_statement "param_6[0xc] = bVar14;" (assignment_expression "param_6[0xc] = bVar14" (subscript_expression "param_6[0xc]" 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[0xe] = bVar13;" (assignment_expression "param_6[0xe] = bVar13" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = bVar17;" (assignment_expression "param_6[0xf] = bVar17" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }" { (expression_statement "dVar29 = (double)fVar33 * dVar26;" (assignment_expression "dVar29 = (double)fVar33 * dVar26" identifier = (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (if_statement "if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }" if (parenthesized_expression "(dVar25 <= dVar29)" ( (binary_expression "dVar25 <= dVar29" identifier <= identifier) )) (compound_statement "{\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }" { (expression_statement "bVar14 = 0xff;" (assignment_expression "bVar14 = 0xff" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" identifier = number_literal) ;) (goto_statement "goto LAB_00165e14;" goto statement_identifier ;) })) (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }" if (parenthesized_expression "(dVar29 < *(double *)(puVar2 + 0x1410))" ( (binary_expression "dVar29 < *(double *)(puVar2 + 0x1410)" identifier < (pointer_expression "*(double *)(puVar2 + 0x1410)" * (cast_expression "(double *)(puVar2 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1410)" ( (binary_expression "puVar2 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n            uVar21 = (uint)dVar29;\n          }" { (expression_statement "uVar21 = (uint)dVar29;" (assignment_expression "uVar21 = (uint)dVar29" identifier = (cast_expression "(uint)dVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }" else (compound_statement "{\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }" { (expression_statement "uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;" (assignment_expression "uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar29 - *(double *)(puVar2 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar29 - *(double *)(puVar2 + 0x1410))" ( (binary_expression "dVar29 - *(double *)(puVar2 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar2 + 0x1410)" * (cast_expression "(double *)(puVar2 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1410)" ( (binary_expression "puVar2 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "bVar17 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar17 = (byte)(uVar21 >> 0x18)" identifier = (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x18)" ( (binary_expression "uVar21 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar13 = (byte)(uVar21 >> 0x10)" identifier = (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x10)" ( (binary_expression "uVar21 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" identifier = (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 8)" ( (binary_expression "uVar21 >> 8" identifier >> number_literal) )))) ;) (expression_statement "bVar14 = (byte)uVar21;" (assignment_expression "bVar14 = (byte)uVar21" identifier = (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_00166084;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00166084;" goto statement_identifier ;)) (labeled_statement "LAB_00165e24:\n          param_6[0xc] = bVar17;" statement_identifier : (expression_statement "param_6[0xc] = bVar17;" (assignment_expression "param_6[0xc] = bVar17" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[0xd] = bVar13;" (assignment_expression "param_6[0xd] = bVar13" (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] = bVar14;" (assignment_expression "param_6[0xf] = bVar14" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10] + 0x10;" (assignment_expression "param_6 = param_6 + param_2[10] + 0x10" identifier = (binary_expression "param_6 + param_2[10] + 0x10" (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iVar22 == param_4) {\n          return;\n        }" if (parenthesized_expression "(iVar22 == param_4)" ( (binary_expression "iVar22 == param_4" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (uVar21 != 0x40) goto LAB_00165538;" if (parenthesized_expression "(uVar21 != 0x40)" ( (binary_expression "uVar21 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_00165538;" goto statement_identifier ;)) (if_statement "if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\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_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }" { (if_statement "if (param_4 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (do_statement "do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);" do (compound_statement "{\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      }" { (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" identifier = (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))))) ;) (expression_statement "bVar13 = (byte)((ulonglong)dVar25 >> 0x20);" (assignment_expression "bVar13 = (byte)((ulonglong)dVar25 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x20)" ( (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar6 = (byte)((ulonglong)dVar25 >> 8);" (assignment_expression "bVar6 = (byte)((ulonglong)dVar25 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 8)" ( (binary_expression "(ulonglong)dVar25 >> 8" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar20 = (byte)((ulonglong)dVar25 >> 0x10);" (assignment_expression "bVar20 = (byte)((ulonglong)dVar25 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x10)" ( (binary_expression "(ulonglong)dVar25 >> 0x10" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar14 = (byte)((ulonglong)dVar25 >> 0x18);" (assignment_expression "bVar14 = (byte)((ulonglong)dVar25 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x18)" ( (binary_expression "(ulonglong)dVar25 >> 0x18" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar18 = (byte)((ulonglong)dVar25 >> 0x28);" (assignment_expression "bVar18 = (byte)((ulonglong)dVar25 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x28)" ( (binary_expression "(ulonglong)dVar25 >> 0x28" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar17 = (byte)((ulonglong)dVar25 >> 0x30);" (assignment_expression "bVar17 = (byte)((ulonglong)dVar25 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x30)" ( (binary_expression "(ulonglong)dVar25 >> 0x30" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((ulonglong)dVar25 >> 0x38);" (assignment_expression "bVar12 = (byte)((ulonglong)dVar25 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x38)" ( (binary_expression "(ulonglong)dVar25 >> 0x38" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }" { (expression_statement "*param_6 = bVar12;" (assignment_expression "*param_6 = bVar12" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = bVar17;" (assignment_expression "param_6[1] = bVar17" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = bVar18;" (assignment_expression "param_6[2] = bVar18" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[4] = bVar14;" (assignment_expression "param_6[4] = bVar14" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[5] = bVar20;" (assignment_expression "param_6[5] = bVar20" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = bVar6;" (assignment_expression "param_6[6] = bVar6" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = SUB81(dVar25,0);" (assignment_expression "param_6[7] = SUB81(dVar25,0)" (subscript_expression "param_6[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar25,0)" identifier (argument_list "(dVar25,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }" else (compound_statement "{\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }" { (expression_statement "*param_6 = SUB81(dVar25,0);" (assignment_expression "*param_6 = SUB81(dVar25,0)" (pointer_expression "*param_6" * identifier) = (call_expression "SUB81(dVar25,0)" identifier (argument_list "(dVar25,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[1] = bVar6;" (assignment_expression "param_6[1] = bVar6" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = bVar20;" (assignment_expression "param_6[2] = bVar20" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = bVar14;" (assignment_expression "param_6[3] = bVar14" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[4] = bVar13;" (assignment_expression "param_6[4] = bVar13" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[5] = bVar18;" (assignment_expression "param_6[5] = bVar18" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = bVar17;" (assignment_expression "param_6[6] = bVar17" (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 "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" identifier = (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff)" identifier = (call_expression "(byte)((ulonglong)dVar25 & 0xff000000ff)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "bVar6 = (byte)((ulonglong)dVar25 >> 8);" (assignment_expression "bVar6 = (byte)((ulonglong)dVar25 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 8)" ( (binary_expression "(ulonglong)dVar25 >> 8" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar20 = (byte)((ulonglong)dVar25 >> 0x10);" (assignment_expression "bVar20 = (byte)((ulonglong)dVar25 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x10)" ( (binary_expression "(ulonglong)dVar25 >> 0x10" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((ulonglong)dVar25 >> 0x18);" (assignment_expression "bVar12 = (byte)((ulonglong)dVar25 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x18)" ( (binary_expression "(ulonglong)dVar25 >> 0x18" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);" (assignment_expression "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" identifier = (call_expression "(byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" ( (binary_expression "((ulonglong)dVar25 & 0xff000000ff) >> 0x20" (parenthesized_expression "((ulonglong)dVar25 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )) >> number_literal) )))) ;) (expression_statement "bVar17 = (byte)((ulonglong)dVar25 >> 0x28);" (assignment_expression "bVar17 = (byte)((ulonglong)dVar25 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x28)" ( (binary_expression "(ulonglong)dVar25 >> 0x28" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar14 = (byte)((ulonglong)dVar25 >> 0x30);" (assignment_expression "bVar14 = (byte)((ulonglong)dVar25 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x30)" ( (binary_expression "(ulonglong)dVar25 >> 0x30" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)((ulonglong)dVar25 >> 0x38);" (assignment_expression "bVar13 = (byte)((ulonglong)dVar25 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x38)" ( (binary_expression "(ulonglong)dVar25 >> 0x38" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }" { (expression_statement "param_6[8] = bVar13;" (assignment_expression "param_6[8] = bVar13" (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) ;) (expression_statement "param_6[10] = bVar17;" (assignment_expression "param_6[10] = bVar17" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = bVar18;" (assignment_expression "param_6[0xb] = bVar18" (subscript_expression "param_6[0xb]" 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] = bVar20;" (assignment_expression "param_6[0xd] = bVar20" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xe] = bVar6;" (assignment_expression "param_6[0xe] = bVar6" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = bVar19;" (assignment_expression "param_6[0xf] = bVar19" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }" else (compound_statement "{\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }" { (expression_statement "param_6[8] = bVar19;" (assignment_expression "param_6[8] = bVar19" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[9] = bVar6;" (assignment_expression "param_6[9] = bVar6" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[10] = bVar20;" (assignment_expression "param_6[10] = bVar20" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = bVar12;" (assignment_expression "param_6[0xb] = bVar12" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xc] = bVar18;" (assignment_expression "param_6[0xc] = bVar18" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xd] = bVar17;" (assignment_expression "param_6[0xd] = bVar17" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xe] = bVar14;" (assignment_expression "param_6[0xe] = bVar14" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = bVar13;" (assignment_expression "param_6[0xf] = bVar13" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" identifier = (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff)" identifier = (call_expression "(byte)((ulonglong)dVar25 & 0xff000000ff)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "bVar6 = (byte)((ulonglong)dVar25 >> 8);" (assignment_expression "bVar6 = (byte)((ulonglong)dVar25 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 8)" ( (binary_expression "(ulonglong)dVar25 >> 8" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar20 = (byte)((ulonglong)dVar25 >> 0x10);" (assignment_expression "bVar20 = (byte)((ulonglong)dVar25 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x10)" ( (binary_expression "(ulonglong)dVar25 >> 0x10" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((ulonglong)dVar25 >> 0x18);" (assignment_expression "bVar12 = (byte)((ulonglong)dVar25 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x18)" ( (binary_expression "(ulonglong)dVar25 >> 0x18" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);" (assignment_expression "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" identifier = (call_expression "(byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" ( (binary_expression "((ulonglong)dVar25 & 0xff000000ff) >> 0x20" (parenthesized_expression "((ulonglong)dVar25 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )) >> number_literal) )))) ;) (expression_statement "bVar17 = (byte)((ulonglong)dVar25 >> 0x28);" (assignment_expression "bVar17 = (byte)((ulonglong)dVar25 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x28)" ( (binary_expression "(ulonglong)dVar25 >> 0x28" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar14 = (byte)((ulonglong)dVar25 >> 0x30);" (assignment_expression "bVar14 = (byte)((ulonglong)dVar25 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x30)" ( (binary_expression "(ulonglong)dVar25 >> 0x30" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)((ulonglong)dVar25 >> 0x38);" (assignment_expression "bVar13 = (byte)((ulonglong)dVar25 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x38)" ( (binary_expression "(ulonglong)dVar25 >> 0x38" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }" { (expression_statement "param_6[0x10] = bVar13;" (assignment_expression "param_6[0x10] = bVar13" (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) ;) (expression_statement "param_6[0x12] = bVar17;" (assignment_expression "param_6[0x12] = bVar17" (subscript_expression "param_6[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x13] = bVar18;" (assignment_expression "param_6[0x13] = bVar18" (subscript_expression "param_6[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x14] = bVar12;" (assignment_expression "param_6[0x14] = bVar12" (subscript_expression "param_6[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x15] = bVar20;" (assignment_expression "param_6[0x15] = bVar20" (subscript_expression "param_6[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x16] = bVar6;" (assignment_expression "param_6[0x16] = bVar6" (subscript_expression "param_6[0x16]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x17] = bVar19;" (assignment_expression "param_6[0x17] = bVar19" (subscript_expression "param_6[0x17]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }" else (compound_statement "{\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }" { (expression_statement "param_6[0x10] = bVar19;" (assignment_expression "param_6[0x10] = bVar19" (subscript_expression "param_6[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x11] = bVar6;" (assignment_expression "param_6[0x11] = bVar6" (subscript_expression "param_6[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x12] = bVar20;" (assignment_expression "param_6[0x12] = bVar20" (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[0x14] = bVar18;" (assignment_expression "param_6[0x14] = bVar18" (subscript_expression "param_6[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x15] = bVar17;" (assignment_expression "param_6[0x15] = bVar17" (subscript_expression "param_6[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x16] = bVar14;" (assignment_expression "param_6[0x16] = bVar14" (subscript_expression "param_6[0x16]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x17] = bVar13;" (assignment_expression "param_6[0x17] = bVar13" (subscript_expression "param_6[0x17]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }" { (expression_statement "dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));" (assignment_expression "dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" identifier = (cast_expression "(double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" ( (binary_expression "fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" * (cast_expression "(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (binary_expression "param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) )))) ;) }) (else_clause "else {\n          dVar25 = 0.0;\n        }" else (compound_statement "{\n          dVar25 = 0.0;\n        }" { (expression_statement "dVar25 = 0.0;" (assignment_expression "dVar25 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);" (assignment_expression "dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" identifier = (binary_expression "dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "dVar25 * *(double *)(param_2 + 0x12)" identifier * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff)" identifier = (call_expression "(byte)((ulonglong)dVar25 & 0xff000000ff)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "bVar6 = (byte)((ulonglong)dVar25 >> 8);" (assignment_expression "bVar6 = (byte)((ulonglong)dVar25 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 8)" ( (binary_expression "(ulonglong)dVar25 >> 8" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar20 = (byte)((ulonglong)dVar25 >> 0x10);" (assignment_expression "bVar20 = (byte)((ulonglong)dVar25 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x10)" ( (binary_expression "(ulonglong)dVar25 >> 0x10" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((ulonglong)dVar25 >> 0x18);" (assignment_expression "bVar12 = (byte)((ulonglong)dVar25 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x18)" ( (binary_expression "(ulonglong)dVar25 >> 0x18" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);" (assignment_expression "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" identifier = (call_expression "(byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" ( (binary_expression "((ulonglong)dVar25 & 0xff000000ff) >> 0x20" (parenthesized_expression "((ulonglong)dVar25 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )) >> number_literal) )))) ;) (expression_statement "bVar17 = (byte)((ulonglong)dVar25 >> 0x28);" (assignment_expression "bVar17 = (byte)((ulonglong)dVar25 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x28)" ( (binary_expression "(ulonglong)dVar25 >> 0x28" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar14 = (byte)((ulonglong)dVar25 >> 0x30);" (assignment_expression "bVar14 = (byte)((ulonglong)dVar25 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x30)" ( (binary_expression "(ulonglong)dVar25 >> 0x30" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)((ulonglong)dVar25 >> 0x38);" (assignment_expression "bVar13 = (byte)((ulonglong)dVar25 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x38)" ( (binary_expression "(ulonglong)dVar25 >> 0x38" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }" { (expression_statement "param_6[0x18] = bVar13;" (assignment_expression "param_6[0x18] = bVar13" (subscript_expression "param_6[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x19] = bVar14;" (assignment_expression "param_6[0x19] = bVar14" (subscript_expression "param_6[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1a] = bVar17;" (assignment_expression "param_6[0x1a] = bVar17" (subscript_expression "param_6[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1b] = bVar18;" (assignment_expression "param_6[0x1b] = bVar18" (subscript_expression "param_6[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1c] = bVar12;" (assignment_expression "param_6[0x1c] = bVar12" (subscript_expression "param_6[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1d] = bVar20;" (assignment_expression "param_6[0x1d] = bVar20" (subscript_expression "param_6[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1e] = bVar6;" (assignment_expression "param_6[0x1e] = bVar6" (subscript_expression "param_6[0x1e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1f] = bVar19;" (assignment_expression "param_6[0x1f] = bVar19" (subscript_expression "param_6[0x1f]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }" else (compound_statement "{\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }" { (expression_statement "param_6[0x18] = bVar19;" (assignment_expression "param_6[0x18] = bVar19" (subscript_expression "param_6[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x19] = bVar6;" (assignment_expression "param_6[0x19] = bVar6" (subscript_expression "param_6[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1a] = bVar20;" (assignment_expression "param_6[0x1a] = bVar20" (subscript_expression "param_6[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1b] = bVar12;" (assignment_expression "param_6[0x1b] = bVar12" (subscript_expression "param_6[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1c] = bVar18;" (assignment_expression "param_6[0x1c] = bVar18" (subscript_expression "param_6[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1d] = bVar17;" (assignment_expression "param_6[0x1d] = bVar17" (subscript_expression "param_6[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1e] = bVar14;" (assignment_expression "param_6[0x1e] = bVar14" (subscript_expression "param_6[0x1e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1f] = bVar13;" (assignment_expression "param_6[0x1f] = bVar13" (subscript_expression "param_6[0x1f]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10] + 0x20;" (assignment_expression "param_6 = param_6 + param_2[10] + 0x20" identifier = (binary_expression "param_6 + param_2[10] + 0x20" (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar22 != param_4)" ( (binary_expression "iVar22 != param_4" identifier != identifier) )) ;) (return_statement "return;" return ;) })) }))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (uVar21 < 0x41) {\n    uVar8 = uVar21;\n  }" if (parenthesized_expression "(uVar21 < 0x41)" ( (binary_expression "uVar21 < 0x41" identifier < number_literal) )) (compound_statement "{\n    uVar8 = uVar21;\n  }" { (expression_statement "uVar8 = uVar21;" (assignment_expression "uVar8 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "uVar15 = 2 << (uVar8 & 0x1f);" (assignment_expression "uVar15 = 2 << (uVar8 & 0x1f)" identifier = (binary_expression "2 << (uVar8 & 0x1f)" number_literal << (parenthesized_expression "(uVar8 & 0x1f)" ( (binary_expression "uVar8 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar9 = uVar15;" (assignment_expression "uVar9 = uVar15" identifier = identifier) ;) (expression_statement "uVar23 = 1 >> (~uVar8 & 0x1f);" (assignment_expression "uVar23 = 1 >> (~uVar8 & 0x1f)" identifier = (binary_expression "1 >> (~uVar8 & 0x1f)" number_literal >> (parenthesized_expression "(~uVar8 & 0x1f)" ( (binary_expression "~uVar8 & 0x1f" (unary_expression "~uVar8" ~ identifier) & number_literal) )))) ;) (if_statement "if ((uVar8 & 0x20) != 0) {\n    uVar9 = 0;\n    uVar23 = uVar15;\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    uVar9 = 0;\n    uVar23 = uVar15;\n  }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = uVar15;" (assignment_expression "uVar23 = uVar15" identifier = identifier) ;) })) (expression_statement "local_b8 = uVar9 - 1;" (assignment_expression "local_b8 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1);" (assignment_expression "local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1)" identifier = (binary_expression "(uint)(local_b8 < uVar9) + (uVar23 - 1)" (call_expression "(uint)(local_b8 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b8 < uVar9)" ( (binary_expression "local_b8 < uVar9" identifier < identifier) ))) + (parenthesized_expression "(uVar23 - 1)" ( (binary_expression "uVar23 - 1" identifier - number_literal) )))) ;) (labeled_statement "LAB_0016507c:\n  if (param_4 < 1) {\n    return;\n  }" statement_identifier : (if_statement "if (param_4 < 1) {\n    return;\n  }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "uVar36 = 0;" (assignment_expression "uVar36 = 0" identifier = number_literal) ;) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "dVar25 = dVar29;" (assignment_expression "dVar25 = dVar29" identifier = identifier) ;) (expression_statement "dVar26 = dVar39;" (assignment_expression "dVar26 = dVar39" identifier = identifier) ;) (expression_statement "dVar27 = dVar37;" (assignment_expression "dVar27 = dVar37" identifier = identifier) ;) (expression_statement "dVar28 = dVar29;" (assignment_expression "dVar28 = dVar29" identifier = identifier) ;) (if_statement "if (!NAN(fVar33)) goto LAB_001650f0;" if (parenthesized_expression "(!NAN(fVar33))" ( (unary_expression "!NAN(fVar33)" ! (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier )))) )) (goto_statement "goto LAB_001650f0;" goto statement_identifier ;)) (labeled_statement "LAB_00165520:\n  do {\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  } while (NAN(fVar33));" statement_identifier : (do_statement "do {\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  } while (NAN(fVar33));" do (compound_statement "{\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  }" { (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" statement_identifier : (expression_statement "uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" (assignment_expression "uVar8 = (uint)((ulonglong)uVar43 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar43 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar43 >> 0x20)" ( (binary_expression "(ulonglong)uVar43 >> 0x20" (cast_expression "(ulonglong)uVar43" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) (if_statement "if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }" { (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (!NAN(fVar33)) goto LAB_00165204;" if (parenthesized_expression "(!NAN(fVar33))" ( (unary_expression "!NAN(fVar33)" ! (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier )))) )) (goto_statement "goto LAB_00165204;" goto statement_identifier ;)) (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);" do (compound_statement "{\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      }" { (while_statement "while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }" { (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }" if (parenthesized_expression "(uVar21 <= uVar23)" ( (binary_expression "uVar21 <= uVar23" identifier <= identifier) )) (compound_statement "{\n            uVar9 = uVar21;\n          }" { (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" identifier = (binary_expression "uVar21 - uVar9" identifier - identifier)) ;) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar21 = 0;\n          }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar23 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar23 == 8)" ( (binary_expression "uVar23 == 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 "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" identifier = (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f)" (parenthesized_expression "(uVar8 << 1)" ( (binary_expression "uVar8 << 1" identifier << number_literal) )) << (parenthesized_expression "(~uVar21 & 0x1f)" ( (binary_expression "~uVar21 & 0x1f" (unary_expression "~uVar21" ~ identifier) & number_literal) ))) | (binary_expression "(uint)uVar43 >> (uVar21 & 0x1f)" (cast_expression "(uint)uVar43" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" { (expression_statement "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar8 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) })) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" identifier = (binary_expression "uVar23 - uVar9" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" ( (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar9 & 0x1f))" ( (binary_expression "-1 << (uVar9 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }" if (parenthesized_expression "((uVar23 & 0x20) != 0)" ( (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" ( (binary_expression "uVar23 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar13 = 0;\n          }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar15 < 1) goto LAB_001651e4;" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_001651e4;" goto statement_identifier ;)) })) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);" statement_identifier : (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;)) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" if (parenthesized_expression "(NAN(fVar33))" ( (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier ))) )) (compound_statement "{\nLAB_001655cc:\n        uVar43 = 0;\n      }" { (labeled_statement "LAB_001655cc:\n        uVar43 = 0;" statement_identifier : (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" else (compound_statement "{\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" { (labeled_statement "LAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;" statement_identifier : (if_statement "if (fVar33 <= (float)uVar36) goto LAB_001655cc;" if (parenthesized_expression "(fVar33 <= (float)uVar36)" ( (binary_expression "fVar33 <= (float)uVar36" identifier <= (cast_expression "(float)uVar36" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_001655cc;" goto statement_identifier ;))) (expression_statement "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);" (assignment_expression "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" ( (pointer_expression "*(code *)PTR_FUN_003a8960" * (cast_expression "(code *)PTR_FUN_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_c0,local_b8)" ( identifier , identifier ))))) ;) (expression_statement "dVar38 = (dVar38 * (double)fVar33) / dVar39;" (assignment_expression "dVar38 = (dVar38 * (double)fVar33) / dVar39" identifier = (binary_expression "(dVar38 * (double)fVar33) / dVar39" (parenthesized_expression "(dVar38 * (double)fVar33)" ( (binary_expression "dVar38 * (double)fVar33" identifier * (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) (if_statement "if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }" if (parenthesized_expression "(dVar38 < dVar28)" ( (binary_expression "dVar38 < dVar28" identifier < identifier) )) (compound_statement "{\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }" { (expression_statement "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);" (assignment_expression "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" identifier = (call_expression "(*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar38 + dVar37)" ( (binary_expression "dVar38 + dVar37" identifier + identifier) )))) ;) }) (else_clause "else {\n          uVar43 = 0xffffffffffffffff;\n        }" else (compound_statement "{\n          uVar43 = 0xffffffffffffffff;\n        }" { (expression_statement "uVar43 = 0xffffffffffffffff;" (assignment_expression "uVar43 = 0xffffffffffffffff" identifier = number_literal) ;) }))) }))) (if_statement "if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }" { (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) }))) (expression_statement "uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" (assignment_expression "uVar8 = (uint)((ulonglong)uVar43 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar43 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar43 >> 0x20)" ( (binary_expression "(ulonglong)uVar43 >> 0x20" (cast_expression "(ulonglong)uVar43" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 8) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 8) * 4" identifier + (binary_expression "*(int *)(iVar24 + 8) * 4" (pointer_expression "*(int *)(iVar24 + 8)" * (cast_expression "(int *)(iVar24 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (!NAN(fVar33)) goto LAB_0016531c;" if (parenthesized_expression "(!NAN(fVar33))" ( (unary_expression "!NAN(fVar33)" ! (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier )))) )) (goto_statement "goto LAB_0016531c;" goto statement_identifier ;)) (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);" do (compound_statement "{\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      }" { (while_statement "while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }" { (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }" if (parenthesized_expression "(uVar21 <= uVar23)" ( (binary_expression "uVar21 <= uVar23" identifier <= identifier) )) (compound_statement "{\n            uVar9 = uVar21;\n          }" { (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" identifier = (binary_expression "uVar21 - uVar9" identifier - identifier)) ;) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar21 = 0;\n          }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar23 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar23 == 8)" ( (binary_expression "uVar23 == 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 "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" identifier = (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f)" (parenthesized_expression "(uVar8 << 1)" ( (binary_expression "uVar8 << 1" identifier << number_literal) )) << (parenthesized_expression "(~uVar21 & 0x1f)" ( (binary_expression "~uVar21 & 0x1f" (unary_expression "~uVar21" ~ identifier) & number_literal) ))) | (binary_expression "(uint)uVar43 >> (uVar21 & 0x1f)" (cast_expression "(uint)uVar43" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" { (expression_statement "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar8 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) })) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" identifier = (binary_expression "uVar23 - uVar9" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" ( (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar9 & 0x1f))" ( (binary_expression "-1 << (uVar9 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }" if (parenthesized_expression "((uVar23 & 0x20) != 0)" ( (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" ( (binary_expression "uVar23 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar13 = 0;\n          }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar15 < 1) goto LAB_001652fc;" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_001652fc;" goto statement_identifier ;)) })) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);" statement_identifier : (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;)) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 8) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 8) * 4" identifier + (binary_expression "*(int *)(iVar24 + 8) * 4" (pointer_expression "*(int *)(iVar24 + 8)" * (cast_expression "(int *)(iVar24 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" if (parenthesized_expression "(NAN(fVar33))" ( (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier ))) )) (compound_statement "{\nLAB_001655c0:\n        uVar43 = 0;\n      }" { (labeled_statement "LAB_001655c0:\n        uVar43 = 0;" statement_identifier : (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" else (compound_statement "{\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" { (labeled_statement "LAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;" statement_identifier : (if_statement "if (fVar33 <= (float)uVar36) goto LAB_001655c0;" if (parenthesized_expression "(fVar33 <= (float)uVar36)" ( (binary_expression "fVar33 <= (float)uVar36" identifier <= (cast_expression "(float)uVar36" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_001655c0;" goto statement_identifier ;))) (expression_statement "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);" (assignment_expression "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" ( (pointer_expression "*(code *)PTR_FUN_003a8960" * (cast_expression "(code *)PTR_FUN_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_c0,local_b8)" ( identifier , identifier ))))) ;) (expression_statement "dVar38 = (dVar38 * (double)fVar33) / dVar39;" (assignment_expression "dVar38 = (dVar38 * (double)fVar33) / dVar39" identifier = (binary_expression "(dVar38 * (double)fVar33) / dVar39" (parenthesized_expression "(dVar38 * (double)fVar33)" ( (binary_expression "dVar38 * (double)fVar33" identifier * (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) (if_statement "if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }" if (parenthesized_expression "(dVar38 < dVar29)" ( (binary_expression "dVar38 < dVar29" identifier < identifier) )) (compound_statement "{\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }" { (expression_statement "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);" (assignment_expression "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" identifier = (call_expression "(*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar38 + dVar37)" ( (binary_expression "dVar38 + dVar37" identifier + identifier) )))) ;) }) (else_clause "else {\n          uVar43 = 0xffffffffffffffff;\n        }" else (compound_statement "{\n          uVar43 = 0xffffffffffffffff;\n        }" { (expression_statement "uVar43 = 0xffffffffffffffff;" (assignment_expression "uVar43 = 0xffffffffffffffff" identifier = number_literal) ;) }))) }))) (if_statement "if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }" { (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) }))) (expression_statement "uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" (assignment_expression "uVar8 = (uint)((ulonglong)uVar43 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar43 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar43 >> 0x20)" ( (binary_expression "(ulonglong)uVar43 >> 0x20" (cast_expression "(ulonglong)uVar43" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }" { (if_statement "if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;" if (parenthesized_expression "(*(int *)(iVar24 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar24 + 0x34) == 4" (pointer_expression "*(int *)(iVar24 + 0x34)" * (cast_expression "(int *)(iVar24 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x34)" ( (binary_expression "iVar24 + 0x34" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0016554c;" goto statement_identifier ;)) (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);" do (compound_statement "{\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      }" { (while_statement "while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }" { (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }" if (parenthesized_expression "(uVar21 <= uVar23)" ( (binary_expression "uVar21 <= uVar23" identifier <= identifier) )) (compound_statement "{\n            uVar9 = uVar21;\n          }" { (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" identifier = (binary_expression "uVar21 - uVar9" identifier - identifier)) ;) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar21 = 0;\n          }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar23 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar23 == 8)" ( (binary_expression "uVar23 == 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 "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" identifier = (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f)" (parenthesized_expression "(uVar8 << 1)" ( (binary_expression "uVar8 << 1" identifier << number_literal) )) << (parenthesized_expression "(~uVar21 & 0x1f)" ( (binary_expression "~uVar21 & 0x1f" (unary_expression "~uVar21" ~ identifier) & number_literal) ))) | (binary_expression "(uint)uVar43 >> (uVar21 & 0x1f)" (cast_expression "(uint)uVar43" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" { (expression_statement "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar8 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) })) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" identifier = (binary_expression "uVar23 - uVar9" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" ( (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar9 & 0x1f))" ( (binary_expression "-1 << (uVar9 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }" if (parenthesized_expression "((uVar23 & 0x20) != 0)" ( (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" ( (binary_expression "uVar23 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar13 = 0;\n          }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar15 < 1) goto LAB_00165418;" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00165418;" goto statement_identifier ;)) })) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);" statement_identifier : (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;)) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }" if (parenthesized_expression "(*(int *)(iVar24 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar24 + 0x34) == 4" (pointer_expression "*(int *)(iVar24 + 0x34)" * (cast_expression "(int *)(iVar24 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x34)" ( (binary_expression "iVar24 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" { (labeled_statement "LAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);" statement_identifier : (expression_statement "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" identifier = (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x38) * 4" (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;)) (if_statement "if (fVar33 <= (float)uVar36) goto LAB_00165430;" if (parenthesized_expression "(fVar33 <= (float)uVar36)" ( (binary_expression "fVar33 <= (float)uVar36" identifier <= (cast_expression "(float)uVar36" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00165430;" goto statement_identifier ;)) (expression_statement "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);" (assignment_expression "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" ( (pointer_expression "*(code *)PTR_FUN_003a8960" * (cast_expression "(code *)PTR_FUN_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_c0,local_b8)" ( identifier , identifier ))))) ;) (expression_statement "dVar38 = (dVar38 * (double)fVar33) / dVar39;" (assignment_expression "dVar38 = (dVar38 * (double)fVar33) / dVar39" identifier = (binary_expression "(dVar38 * (double)fVar33) / dVar39" (parenthesized_expression "(dVar38 * (double)fVar33)" ( (binary_expression "dVar38 * (double)fVar33" identifier * (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) (if_statement "if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }" if (parenthesized_expression "(dVar38 < dVar29)" ( (binary_expression "dVar38 < dVar29" identifier < identifier) )) (compound_statement "{\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }" { (expression_statement "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);" (assignment_expression "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" identifier = (call_expression "(*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar38 + dVar37)" ( (binary_expression "dVar38 + dVar37" identifier + identifier) )))) ;) }) (else_clause "else {\n          uVar43 = 0xffffffffffffffff;\n        }" else (compound_statement "{\n          uVar43 = 0xffffffffffffffff;\n        }" { (expression_statement "uVar43 = 0xffffffffffffffff;" (assignment_expression "uVar43 = 0xffffffffffffffff" identifier = number_literal) ;) }))) }) (else_clause "else {\nLAB_00165430:\n        uVar43 = 0;\n      }" else (compound_statement "{\nLAB_00165430:\n        uVar43 = 0;\n      }" { (labeled_statement "LAB_00165430:\n        uVar43 = 0;" statement_identifier : (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;)) }))) (if_statement "if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        param_2[0x15] = 8;\n      }" { (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) }))) (expression_statement "uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" (assignment_expression "uVar8 = (uint)((ulonglong)uVar43 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar43 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar43 >> 0x20)" ( (binary_expression "(ulonglong)uVar43 >> 0x20" (cast_expression "(ulonglong)uVar43" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }" { (do_statement "do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);" do (compound_statement "{\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      }" { (expression_statement "uVar9 = param_2[0x15];" (assignment_expression "uVar9 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = uVar9;" (assignment_expression "uVar23 = uVar9" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }" if (parenthesized_expression "(uVar21 <= uVar9)" ( (binary_expression "uVar21 <= uVar9" identifier <= identifier) )) (compound_statement "{\n          uVar23 = uVar21;\n        }" { (expression_statement "uVar23 = uVar21;" (assignment_expression "uVar23 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar21 - uVar23;" (assignment_expression "uVar15 = uVar21 - uVar23" identifier = (binary_expression "uVar21 - uVar23" identifier - identifier)) ;) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar21 = 0;\n        }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (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 "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" identifier = (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f)" (parenthesized_expression "(uVar8 << 1)" ( (binary_expression "uVar8 << 1" identifier << number_literal) )) << (parenthesized_expression "(~uVar21 & 0x1f)" ( (binary_expression "~uVar21 & 0x1f" (unary_expression "~uVar21" ~ identifier) & number_literal) ))) | (binary_expression "(uint)uVar43 >> (uVar21 & 0x1f)" (cast_expression "(uint)uVar43" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }" { (expression_statement "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar8 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) })) (expression_statement "uVar9 = uVar9 - uVar23;" (assignment_expression "uVar9 = uVar9 - uVar23" identifier = (binary_expression "uVar9 - uVar23" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar9;" (assignment_expression "param_2[0x15] = uVar9" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f))" ( (binary_expression "(~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar23 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar23 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar23 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar23 & 0x1f))" ( (binary_expression "-1 << (uVar23 & 0x1f)" number_literal << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar9 & 0x20) != 0) {\n          bVar13 = 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          bVar13 = 0;\n        }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 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[0x15] = 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) }) while (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10];" (assignment_expression "param_6 = param_6 + param_2[10]" identifier = (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ]))) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iVar22 == param_4) {\n      return;\n    }" if (parenthesized_expression "(iVar22 == param_4)" ( (binary_expression "iVar22 == param_4" identifier == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) }) while (parenthesized_expression "(NAN(fVar33))" ( (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier ))) )) ;)) (labeled_statement "LAB_001650f0:\n  if (fVar33 <= (float)uVar36) goto LAB_00165520;" statement_identifier : (if_statement "if (fVar33 <= (float)uVar36) goto LAB_00165520;" if (parenthesized_expression "(fVar33 <= (float)uVar36)" ( (binary_expression "fVar33 <= (float)uVar36" identifier <= (cast_expression "(float)uVar36" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00165520;" goto statement_identifier ;))) (expression_statement "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);" (assignment_expression "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" ( (pointer_expression "*(code *)PTR_FUN_003a8960" * (cast_expression "(code *)PTR_FUN_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_c0,local_b8)" ( identifier , identifier ))))) ;) (expression_statement "dVar38 = (dVar38 * (double)fVar33) / dVar26;" (assignment_expression "dVar38 = (dVar38 * (double)fVar33) / dVar26" identifier = (binary_expression "(dVar38 * (double)fVar33) / dVar26" (parenthesized_expression "(dVar38 * (double)fVar33)" ( (binary_expression "dVar38 * (double)fVar33" identifier * (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) (if_statement "if (dVar38 < dVar25) {\n    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);\n  }\n  else {\n    uVar43 = 0xffffffffffffffff;\n  }" if (parenthesized_expression "(dVar38 < dVar25)" ( (binary_expression "dVar38 < dVar25" identifier < identifier) )) (compound_statement "{\n    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);\n  }" { (expression_statement "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);" (assignment_expression "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27)" identifier = (call_expression "(*(code *)PTR_FUN_003a8954)(dVar38 + dVar27)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar38 + dVar27)" ( (binary_expression "dVar38 + dVar27" identifier + identifier) )))) ;) }) (else_clause "else {\n    uVar43 = 0xffffffffffffffff;\n  }" else (compound_statement "{\n    uVar43 = 0xffffffffffffffff;\n  }" { (expression_statement "uVar43 = 0xffffffffffffffff;" (assignment_expression "uVar43 = 0xffffffffffffffff" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00165130;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nvoid ExportBGROQuantum(Image *image,QuantumInfo *quantum_info,MagickSizeType number_pixels,\n                      Quantum *p,uchar *q,ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  ushort uVar5;\n  PixelChannelMap *pPVar8;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  uint uVar9;\n  uint extraout_v1_02;\n  uint extraout_v1_03;\n  uint extraout_v1_04;\n  uint uVar10;\n  uint extraout_v1_05;\n  uint extraout_v1_06;\n  uint extraout_v1_07;\n  uint extraout_v1_08;\n  uint extraout_v1_09;\n  undefined1 uVar14;\n  byte bVar15;\n  uint uVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  undefined1 uVar16;\n  uint uVar17;\n  uint uVar18;\n  EndianType EVar19;\n  undefined1 uVar20;\n  undefined1 uVar22;\n  undefined1 uVar23;\n  PixelTrait PVar21;\n  undefined1 uVar24;\n  uint uVar25;\n  int iVar26;\n  size_t sVar27;\n  uint uVar28;\n  uchar *puVar29;\n  int iVar30;\n  byte *pbVar31;\n  int iVar32;\n  double dVar33;\n  float fVar39;\n  double dVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  float fVar40;\n  double dVar38;\n  undefined2 uVar41;\n  float fVar42;\n  ulonglong uVar43;\n  undefined8 uVar44;\n  double dVar45;\n  double dVar46;\n  double dVar47;\n  double dVar48;\n  double dVar49;\n  double dVar50;\n  undefined8 uVar51;\n  int local_c0;\n  uint local_b8;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar3 = PTR_s_t_to_left_003a88e4;\n  puVar2 = PTR_LAB_003a88e0;\n  if (exception == (ExceptionInfo *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  if (exception->signature != 0xabacadab) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  uVar25 = quantum_info->depth;\n  if (uVar25 == 0x10) {\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      EVar19 = LSBEndian;\n      PVar21 = BlendPixelTrait;\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar43 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar33 = dVar36;\n      dVar34 = dVar36;\n      dVar35 = dVar36;\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          puVar12[2] = (char)uVar5;\n          puVar12[3] = uVar6;\n        }\n        else {\n          puVar12[2] = uVar6;\n          puVar12[3] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 4;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 2;\n        if (image->channel_map[4].traits == PVar21) {\n          fVar39 = (float)((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35);\n        }\n        else {\n          fVar39 = 0.0;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar39);\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 2);\n      } while (puVar29 != q);\n      return;\n    }\n    if ((int)q < 1) {\n      return;\n    }\n    puVar29 = (uchar *)0x0;\n    fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar34 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      iVar26 = (int)(number_pixels >> 0x20);\n      puVar12 = (undefined1 *)number_pixels;\n      fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165b70;\nLAB_00165d84:\n        *puVar12 = uVar14;\n        puVar12[1] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d84;\nLAB_00165b70:\n        *puVar12 = uVar6;\n        puVar12[1] = uVar20;\n      }\n      fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165be4;\nLAB_00165d64:\n        puVar12[2] = uVar14;\n        puVar12[3] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d64;\nLAB_00165be4:\n        puVar12[2] = uVar6;\n        puVar12[3] = uVar20;\n      }\n      fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c5c;\nLAB_00165d44:\n        puVar12[4] = uVar14;\n        puVar12[5] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d44;\nLAB_00165c5c:\n        puVar12[4] = uVar6;\n        puVar12[5] = uVar20;\n      }\n      if ((image->channel_map[4].traits != BlendPixelTrait) ||\n         (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0)) {\n        uVar6 = 0;\n        uVar14 = 0;\nLAB_00165c80:\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c8c;\nLAB_00165d24:\n        puVar12[6] = uVar6;\n        puVar12[7] = uVar14;\n      }\n      else {\n        if (fVar39 <= fVar42) {\n          uVar6 = 0xff;\n          uVar14 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar35 = (double)fVar42 + dVar34;\n        if (dVar35 < dVar33) {\n          uVar41 = (undefined2)(int)dVar35;\n        }\n        else {\n          uVar41 = (undefined2)(int)(dVar35 - dVar33);\n        }\n        uVar14 = (undefined1)((ushort)uVar41 >> 8);\n        uVar6 = (undefined1)uVar41;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d24;\nLAB_00165c8c:\n        puVar12[6] = uVar14;\n        puVar12[7] = uVar6;\n      }\n      puVar29 = puVar29 + 1;\n      number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 8);\n      if (puVar29 == q) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar25 < 0x11) {\n    if (uVar25 == 8) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        *puVar12 = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[1] = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[2] = uVar6;\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[3] = uVar6;\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 4);\n      } while (puVar29 != q);\n      return;\n    }\n    if (uVar25 == 10) {\n      if (quantum_info->pack == MagickFalse) {\n        if ((int)q < 1) {\n          return;\n        }\n        iVar26 = 0;\n        uVar25 = 0;\n        dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar43 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar34 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar32 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          iVar30 = 0;\n          dVar48 = *(double *)(puVar4 + -0x7538);\n          dVar50 = *(double *)(puVar2 + 0x1418);\n          dVar46 = *(double *)(puVar2 + 0x1a58);\n          dVar45 = *(double *)(puVar2 + 0x1a60);\n          dVar49 = *(double *)(puVar2 + 0x1400);\n          dVar47 = dVar50;\n          do {\n            pPVar8 = image->channel_map;\n            if (iVar30 == 2) {\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }\n            else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar9 = (uint)(iVar30 + iVar26) % 3;\n            if (uVar9 == 1) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }\n            iVar30 = iVar30 + 1;\n          } while (iVar30 != 4);\n          iVar26 = iVar26 + 4;\n          number_pixels = CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (iVar26 == (int)q << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (quantum_info->quantum == 0x20) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar25 = 10;\n        dVar33 = dVar45;\n        dVar34 = dVar46;\n        dVar35 = dVar48;\n        dVar36 = dVar49;\n        dVar37 = dVar48;\n        dVar47 = dVar46;\n        while( true ) {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n          if (NAN(fVar42)) {\n            uVar9 = 0;\n          }\n          else {\n            uVar9 = 0;\n            if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }\n          }\n          uVar10 = (quantum_info->state).bits;\n          if (uVar10 == 0) {\n            uVar10 = 0x20;\n            (quantum_info->state).bits = 0x20;\n          }\n          if (0 < (int)uVar25) {\n            bVar1 = uVar10 < uVar25;\n            uVar17 = uVar25;\n            puVar13 = puVar12;\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar17);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar12 = puVar13;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          if ((pPVar8[4].traits != BlendPixelTrait) ||\n             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          uVar10 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            while( true ) {\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (puVar29 == q) break;\n          uVar25 = quantum_info->depth;\n        }\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar25 = 10;\n      dVar33 = dVar45;\n      dVar34 = dVar46;\n      dVar35 = dVar48;\n      dVar36 = dVar49;\n      dVar37 = dVar48;\n      dVar47 = dVar46;\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        pbVar31 = (byte *)number_pixels;\n        pPVar8 = image->channel_map;\n        fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n        if (NAN(fVar42)) {\n          uVar9 = 0;\n        }\n        else {\n          uVar9 = 0;\n          if (0.0 < fVar42) {\n            dVar50 = ((double)fVar42 * dVar35) / dVar34;\n            if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n        }\n        sVar27 = (quantum_info->state).bits;\n        if (sVar27 == 0) {\n          sVar27 = 8;\n          (quantum_info->state).bits = 8;\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166458;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_00166434:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cbc:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166550;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016652c:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cb4:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          uVar10 = 0;\n          uVar9 = uVar25;\n          if (pPVar8[4].traits == BlendPixelTrait) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016662c:\n          pPVar8 = image->channel_map;\n          uVar25 = quantum_info->depth;\n          if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n            if (fVar42 <= 0.0) goto LAB_00166640;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar10 = 0;\n          }\n          uVar9 = uVar25;\n          if (sVar27 == 0) {\n            (quantum_info->state).bits = 8;\n          }\n        }\n        while (0 < (int)uVar9) {\n          uVar11 = (quantum_info->state).bits;\n          uVar17 = uVar11;\n          if (uVar25 <= uVar11) {\n            uVar17 = uVar25;\n          }\n          uVar9 = uVar25 - uVar17;\n          uVar25 = uVar9;\n          if ((int)uVar9 < 0) {\n            uVar25 = 0;\n          }\n          if (uVar11 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar28 = uVar10 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar28 = 0;\n          }\n          uVar11 = uVar11 - uVar17;\n          (quantum_info->state).bits = uVar11;\n          bVar15 = (byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f));\n          if ((uVar11 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar11 == 0) {\n            pbVar31 = pbVar31 + 1;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels = CONCAT44(iVar26 + image->number_channels * 4,pbVar31 + quantum_info->pad);\n        if (puVar29 == q) {\n          return;\n        }\n        uVar25 = quantum_info->depth;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar25 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar25 == 0x20) {\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *puVar12 = uVar6;\n            puVar12[1] = uVar14;\n            puVar12[2] = uVar16;\n            puVar12[3] = SUB41(fVar42,0);\n          }\n          else {\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[4] = uVar6;\n            puVar12[5] = uVar14;\n            puVar12[6] = uVar16;\n            puVar12[7] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[8] = uVar6;\n            puVar12[9] = uVar14;\n            puVar12[10] = uVar16;\n            puVar12[0xb] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n          }\n          else {\n            dVar33 = 0.0;\n          }\n          fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[0xc] = uVar6;\n            puVar12[0xd] = uVar14;\n            puVar12[0xe] = uVar16;\n            puVar12[0xf] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels =\n               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        } while (puVar29 != q);\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165ecc;\nLAB_001660ec:\n          *puVar12 = uVar16;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660ec;\nLAB_00165ecc:\n          *puVar12 = uVar23;\n          puVar12[1] = uVar6;\n          puVar12[2] = uVar14;\n          puVar12[3] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165f54;\nLAB_0016611c:\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar20;\n          puVar12[6] = uVar22;\n          puVar12[7] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_0016611c;\nLAB_00165f54:\n          puVar12[4] = uVar23;\n          puVar12[5] = uVar6;\n          puVar12[6] = uVar14;\n          puVar12[7] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165fe8;\nLAB_001660b8:\n          puVar12[8] = uVar16;\n          puVar12[9] = uVar20;\n          puVar12[10] = uVar22;\n          puVar12[0xb] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660b8;\nLAB_00165fe8:\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar6;\n          puVar12[10] = uVar14;\n          puVar12[0xb] = uVar7;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar16 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar20 = 0;\nLAB_00165e14:\n          if (quantum_info->endian != LSBEndian) goto LAB_00165e24;\nLAB_00166084:\n          puVar12[0xc] = uVar16;\n          puVar12[0xd] = uVar14;\n          puVar12[0xe] = uVar6;\n          puVar12[0xf] = uVar20;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          if (dVar33 <= dVar37) {\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar37 = dVar37 + dVar36;\n          if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n            uVar25 = (uint)dVar37;\n          }\n          else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          uVar20 = (undefined1)(uVar25 >> 0x18);\n          uVar6 = (undefined1)(uVar25 >> 0x10);\n          uVar14 = (undefined1)(uVar25 >> 8);\n          uVar16 = (undefined1)uVar25;\n          if (quantum_info->endian == LSBEndian) goto LAB_00166084;\nLAB_00165e24:\n          puVar12[0xc] = uVar20;\n          puVar12[0xd] = uVar6;\n          puVar12[0xe] = uVar14;\n          puVar12[0xf] = uVar16;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        if (puVar29 == q) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar25 != 0x40) goto LAB_00165538;\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x20);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          *puVar12 = uVar14;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar6;\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar24;\n          puVar12[6] = uVar7;\n          puVar12[7] = SUB81(dVar33,0);\n        }\n        else {\n          *puVar12 = SUB81(dVar33,0);\n          puVar12[1] = uVar7;\n          puVar12[2] = uVar24;\n          puVar12[3] = uVar16;\n          puVar12[4] = uVar6;\n          puVar12[5] = uVar22;\n          puVar12[6] = uVar20;\n          puVar12[7] = uVar14;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[8] = uVar6;\n          puVar12[9] = uVar16;\n          puVar12[10] = uVar20;\n          puVar12[0xb] = uVar22;\n          puVar12[0xc] = uVar14;\n          puVar12[0xd] = uVar24;\n          puVar12[0xe] = uVar7;\n          puVar12[0xf] = uVar23;\n        }\n        else {\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar7;\n          puVar12[10] = uVar24;\n          puVar12[0xb] = uVar14;\n          puVar12[0xc] = uVar22;\n          puVar12[0xd] = uVar20;\n          puVar12[0xe] = uVar16;\n          puVar12[0xf] = uVar6;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x10] = uVar6;\n          puVar12[0x11] = uVar16;\n          puVar12[0x12] = uVar20;\n          puVar12[0x13] = uVar22;\n          puVar12[0x14] = uVar14;\n          puVar12[0x15] = uVar24;\n          puVar12[0x16] = uVar7;\n          puVar12[0x17] = uVar23;\n        }\n        else {\n          puVar12[0x10] = uVar23;\n          puVar12[0x11] = uVar7;\n          puVar12[0x12] = uVar24;\n          puVar12[0x13] = uVar14;\n          puVar12[0x14] = uVar22;\n          puVar12[0x15] = uVar20;\n          puVar12[0x16] = uVar16;\n          puVar12[0x17] = uVar6;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n        }\n        else {\n          dVar33 = 0.0;\n        }\n        dVar33 = dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x18] = uVar6;\n          puVar12[0x19] = uVar16;\n          puVar12[0x1a] = uVar20;\n          puVar12[0x1b] = uVar22;\n          puVar12[0x1c] = uVar14;\n          puVar12[0x1d] = uVar24;\n          puVar12[0x1e] = uVar7;\n          puVar12[0x1f] = uVar23;\n        }\n        else {\n          puVar12[0x18] = uVar23;\n          puVar12[0x19] = uVar7;\n          puVar12[0x1a] = uVar24;\n          puVar12[0x1b] = uVar14;\n          puVar12[0x1c] = uVar22;\n          puVar12[0x1d] = uVar20;\n          puVar12[0x1e] = uVar16;\n          puVar12[0x1f] = uVar6;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20);\n      } while (puVar29 != q);\n      return;\n    }\n  }\n  uVar9 = 0;\n  if (uVar25 < 0x41) {\n    uVar9 = uVar25;\n  }\n  uVar9 = uVar9 - 1;\n  uVar11 = 2 << (uVar9 & 0x1f);\n  uVar17 = uVar11;\n  uVar10 = 1 >> (~uVar9 & 0x1f);\n  if ((uVar9 & 0x20) != 0) {\n    uVar17 = 0;\n    uVar10 = uVar11;\n  }\n  local_b8 = uVar17 - 1;\n  local_c0 = (uint)(local_b8 < uVar17) + (uVar10 - 1);\nLAB_0016507c:\n  if ((int)q < 1) {\n    return;\n  }\n  uVar44 = 0;\n  pPVar8 = image->channel_map;\n  puVar29 = (uchar *)0x0;\n  dVar47 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n  dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n  dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n  fVar42 = *(float *)(number_pixels._0_4_ + pPVar8[2].offset * 4);\n  dVar33 = dVar37;\n  dVar34 = dVar47;\n  dVar35 = dVar45;\n  dVar36 = dVar37;\n  if (!NAN(fVar42)) goto LAB_001650f0;\nLAB_00165520:\n  do {\n    uVar51 = 0;\nLAB_00165130:\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    iVar26 = (int)(number_pixels >> 0x20);\n    pbVar31 = (byte *)number_pixels;\n    sVar27 = (quantum_info->state).bits;\n    if (sVar27 == 0) {\n      sVar27 = 8;\n      (quantum_info->state).bits = 8;\n    }\n    if ((int)uVar25 < 1) {\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      if (!NAN(fVar42)) goto LAB_00165204;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001651e4;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001651e4:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655cc:\n        uVar51 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar42 <= (float)uVar44) goto LAB_001655cc;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar36) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if ((int)uVar25 < 1) {\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      if (!NAN(fVar42)) goto LAB_0016531c;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001652fc;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001652fc:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655c0:\n        uVar51 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar42 <= (float)uVar44) goto LAB_001655c0;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if ((int)uVar25 < 1) {\n      if (pPVar8[4].traits == BlendPixelTrait) goto LAB_0016554c;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_00165418;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_00165418:\n      pPVar8 = image->channel_map;\n      uVar25 = quantum_info->depth;\n      if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_0016554c:\n        fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n        if (fVar42 <= (float)uVar44) goto LAB_00165430;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar51 = 0;\n      }\n      if (sVar27 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if (0 < (int)uVar25) {\n      do {\n        uVar17 = (quantum_info->state).bits;\n        uVar10 = uVar17;\n        if (uVar25 <= uVar17) {\n          uVar10 = uVar25;\n        }\n        uVar11 = uVar25 - uVar10;\n        uVar25 = uVar11;\n        if ((int)uVar11 < 0) {\n          uVar25 = 0;\n        }\n        if (uVar17 == 8) {\n          *pbVar31 = 0;\n        }\n        uVar28 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n        if ((uVar25 & 0x20) != 0) {\n          uVar28 = uVar9 >> (uVar25 & 0x1f);\n        }\n        uVar17 = uVar17 - uVar10;\n        (quantum_info->state).bits = uVar17;\n        bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f));\n        if ((uVar17 & 0x20) != 0) {\n          bVar15 = 0;\n        }\n        *pbVar31 = bVar15 | *pbVar31;\n        if (uVar17 == 0) {\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n        }\n      } while (0 < (int)uVar11);\n    }\n    puVar29 = puVar29 + 1;\n    iVar26 = iVar26 + image->number_channels * 4;\n    number_pixels = CONCAT44(iVar26,pbVar31 + quantum_info->pad);\n    if (puVar29 == q) {\n      return;\n    }\n    pPVar8 = image->channel_map;\n    fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n    uVar25 = quantum_info->depth;\n  } while (NAN(fVar42));\nLAB_001650f0:\n  if (fVar42 <= (float)uVar44) goto LAB_00165520;\n  dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n  dVar46 = (dVar46 * (double)fVar42) / dVar34;\n  if (dVar46 < dVar33) {\n    uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar35);\n  }\n  else {\n    uVar51 = 0xffffffffffffffff;\n  }\n  goto LAB_00165130;\n}\n\n" comment comment comment comment comment (function_definition "void ExportBGROQuantum(Image *image,QuantumInfo *quantum_info,MagickSizeType number_pixels,\n                      Quantum *p,uchar *q,ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  ushort uVar5;\n  PixelChannelMap *pPVar8;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  uint uVar9;\n  uint extraout_v1_02;\n  uint extraout_v1_03;\n  uint extraout_v1_04;\n  uint uVar10;\n  uint extraout_v1_05;\n  uint extraout_v1_06;\n  uint extraout_v1_07;\n  uint extraout_v1_08;\n  uint extraout_v1_09;\n  undefined1 uVar14;\n  byte bVar15;\n  uint uVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  undefined1 uVar16;\n  uint uVar17;\n  uint uVar18;\n  EndianType EVar19;\n  undefined1 uVar20;\n  undefined1 uVar22;\n  undefined1 uVar23;\n  PixelTrait PVar21;\n  undefined1 uVar24;\n  uint uVar25;\n  int iVar26;\n  size_t sVar27;\n  uint uVar28;\n  uchar *puVar29;\n  int iVar30;\n  byte *pbVar31;\n  int iVar32;\n  double dVar33;\n  float fVar39;\n  double dVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  float fVar40;\n  double dVar38;\n  undefined2 uVar41;\n  float fVar42;\n  ulonglong uVar43;\n  undefined8 uVar44;\n  double dVar45;\n  double dVar46;\n  double dVar47;\n  double dVar48;\n  double dVar49;\n  double dVar50;\n  undefined8 uVar51;\n  int local_c0;\n  uint local_b8;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar3 = PTR_s_t_to_left_003a88e4;\n  puVar2 = PTR_LAB_003a88e0;\n  if (exception == (ExceptionInfo *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  if (exception->signature != 0xabacadab) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  uVar25 = quantum_info->depth;\n  if (uVar25 == 0x10) {\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      EVar19 = LSBEndian;\n      PVar21 = BlendPixelTrait;\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar43 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar33 = dVar36;\n      dVar34 = dVar36;\n      dVar35 = dVar36;\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          puVar12[2] = (char)uVar5;\n          puVar12[3] = uVar6;\n        }\n        else {\n          puVar12[2] = uVar6;\n          puVar12[3] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 4;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 2;\n        if (image->channel_map[4].traits == PVar21) {\n          fVar39 = (float)((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35);\n        }\n        else {\n          fVar39 = 0.0;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar39);\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 2);\n      } while (puVar29 != q);\n      return;\n    }\n    if ((int)q < 1) {\n      return;\n    }\n    puVar29 = (uchar *)0x0;\n    fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar34 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      iVar26 = (int)(number_pixels >> 0x20);\n      puVar12 = (undefined1 *)number_pixels;\n      fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165b70;\nLAB_00165d84:\n        *puVar12 = uVar14;\n        puVar12[1] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d84;\nLAB_00165b70:\n        *puVar12 = uVar6;\n        puVar12[1] = uVar20;\n      }\n      fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165be4;\nLAB_00165d64:\n        puVar12[2] = uVar14;\n        puVar12[3] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d64;\nLAB_00165be4:\n        puVar12[2] = uVar6;\n        puVar12[3] = uVar20;\n      }\n      fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c5c;\nLAB_00165d44:\n        puVar12[4] = uVar14;\n        puVar12[5] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d44;\nLAB_00165c5c:\n        puVar12[4] = uVar6;\n        puVar12[5] = uVar20;\n      }\n      if ((image->channel_map[4].traits != BlendPixelTrait) ||\n         (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0)) {\n        uVar6 = 0;\n        uVar14 = 0;\nLAB_00165c80:\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c8c;\nLAB_00165d24:\n        puVar12[6] = uVar6;\n        puVar12[7] = uVar14;\n      }\n      else {\n        if (fVar39 <= fVar42) {\n          uVar6 = 0xff;\n          uVar14 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar35 = (double)fVar42 + dVar34;\n        if (dVar35 < dVar33) {\n          uVar41 = (undefined2)(int)dVar35;\n        }\n        else {\n          uVar41 = (undefined2)(int)(dVar35 - dVar33);\n        }\n        uVar14 = (undefined1)((ushort)uVar41 >> 8);\n        uVar6 = (undefined1)uVar41;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d24;\nLAB_00165c8c:\n        puVar12[6] = uVar14;\n        puVar12[7] = uVar6;\n      }\n      puVar29 = puVar29 + 1;\n      number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 8);\n      if (puVar29 == q) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar25 < 0x11) {\n    if (uVar25 == 8) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        *puVar12 = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[1] = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[2] = uVar6;\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[3] = uVar6;\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 4);\n      } while (puVar29 != q);\n      return;\n    }\n    if (uVar25 == 10) {\n      if (quantum_info->pack == MagickFalse) {\n        if ((int)q < 1) {\n          return;\n        }\n        iVar26 = 0;\n        uVar25 = 0;\n        dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar43 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar34 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar32 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          iVar30 = 0;\n          dVar48 = *(double *)(puVar4 + -0x7538);\n          dVar50 = *(double *)(puVar2 + 0x1418);\n          dVar46 = *(double *)(puVar2 + 0x1a58);\n          dVar45 = *(double *)(puVar2 + 0x1a60);\n          dVar49 = *(double *)(puVar2 + 0x1400);\n          dVar47 = dVar50;\n          do {\n            pPVar8 = image->channel_map;\n            if (iVar30 == 2) {\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }\n            else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar9 = (uint)(iVar30 + iVar26) % 3;\n            if (uVar9 == 1) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }\n            iVar30 = iVar30 + 1;\n          } while (iVar30 != 4);\n          iVar26 = iVar26 + 4;\n          number_pixels = CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (iVar26 == (int)q << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (quantum_info->quantum == 0x20) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar25 = 10;\n        dVar33 = dVar45;\n        dVar34 = dVar46;\n        dVar35 = dVar48;\n        dVar36 = dVar49;\n        dVar37 = dVar48;\n        dVar47 = dVar46;\n        while( true ) {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n          if (NAN(fVar42)) {\n            uVar9 = 0;\n          }\n          else {\n            uVar9 = 0;\n            if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }\n          }\n          uVar10 = (quantum_info->state).bits;\n          if (uVar10 == 0) {\n            uVar10 = 0x20;\n            (quantum_info->state).bits = 0x20;\n          }\n          if (0 < (int)uVar25) {\n            bVar1 = uVar10 < uVar25;\n            uVar17 = uVar25;\n            puVar13 = puVar12;\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar17);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar12 = puVar13;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          if ((pPVar8[4].traits != BlendPixelTrait) ||\n             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          uVar10 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            while( true ) {\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (puVar29 == q) break;\n          uVar25 = quantum_info->depth;\n        }\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar25 = 10;\n      dVar33 = dVar45;\n      dVar34 = dVar46;\n      dVar35 = dVar48;\n      dVar36 = dVar49;\n      dVar37 = dVar48;\n      dVar47 = dVar46;\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        pbVar31 = (byte *)number_pixels;\n        pPVar8 = image->channel_map;\n        fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n        if (NAN(fVar42)) {\n          uVar9 = 0;\n        }\n        else {\n          uVar9 = 0;\n          if (0.0 < fVar42) {\n            dVar50 = ((double)fVar42 * dVar35) / dVar34;\n            if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n        }\n        sVar27 = (quantum_info->state).bits;\n        if (sVar27 == 0) {\n          sVar27 = 8;\n          (quantum_info->state).bits = 8;\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166458;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_00166434:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cbc:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166550;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016652c:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cb4:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          uVar10 = 0;\n          uVar9 = uVar25;\n          if (pPVar8[4].traits == BlendPixelTrait) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016662c:\n          pPVar8 = image->channel_map;\n          uVar25 = quantum_info->depth;\n          if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n            if (fVar42 <= 0.0) goto LAB_00166640;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar10 = 0;\n          }\n          uVar9 = uVar25;\n          if (sVar27 == 0) {\n            (quantum_info->state).bits = 8;\n          }\n        }\n        while (0 < (int)uVar9) {\n          uVar11 = (quantum_info->state).bits;\n          uVar17 = uVar11;\n          if (uVar25 <= uVar11) {\n            uVar17 = uVar25;\n          }\n          uVar9 = uVar25 - uVar17;\n          uVar25 = uVar9;\n          if ((int)uVar9 < 0) {\n            uVar25 = 0;\n          }\n          if (uVar11 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar28 = uVar10 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar28 = 0;\n          }\n          uVar11 = uVar11 - uVar17;\n          (quantum_info->state).bits = uVar11;\n          bVar15 = (byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f));\n          if ((uVar11 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar11 == 0) {\n            pbVar31 = pbVar31 + 1;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels = CONCAT44(iVar26 + image->number_channels * 4,pbVar31 + quantum_info->pad);\n        if (puVar29 == q) {\n          return;\n        }\n        uVar25 = quantum_info->depth;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar25 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar25 == 0x20) {\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *puVar12 = uVar6;\n            puVar12[1] = uVar14;\n            puVar12[2] = uVar16;\n            puVar12[3] = SUB41(fVar42,0);\n          }\n          else {\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[4] = uVar6;\n            puVar12[5] = uVar14;\n            puVar12[6] = uVar16;\n            puVar12[7] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[8] = uVar6;\n            puVar12[9] = uVar14;\n            puVar12[10] = uVar16;\n            puVar12[0xb] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n          }\n          else {\n            dVar33 = 0.0;\n          }\n          fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[0xc] = uVar6;\n            puVar12[0xd] = uVar14;\n            puVar12[0xe] = uVar16;\n            puVar12[0xf] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels =\n               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        } while (puVar29 != q);\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165ecc;\nLAB_001660ec:\n          *puVar12 = uVar16;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660ec;\nLAB_00165ecc:\n          *puVar12 = uVar23;\n          puVar12[1] = uVar6;\n          puVar12[2] = uVar14;\n          puVar12[3] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165f54;\nLAB_0016611c:\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar20;\n          puVar12[6] = uVar22;\n          puVar12[7] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_0016611c;\nLAB_00165f54:\n          puVar12[4] = uVar23;\n          puVar12[5] = uVar6;\n          puVar12[6] = uVar14;\n          puVar12[7] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165fe8;\nLAB_001660b8:\n          puVar12[8] = uVar16;\n          puVar12[9] = uVar20;\n          puVar12[10] = uVar22;\n          puVar12[0xb] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660b8;\nLAB_00165fe8:\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar6;\n          puVar12[10] = uVar14;\n          puVar12[0xb] = uVar7;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar16 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar20 = 0;\nLAB_00165e14:\n          if (quantum_info->endian != LSBEndian) goto LAB_00165e24;\nLAB_00166084:\n          puVar12[0xc] = uVar16;\n          puVar12[0xd] = uVar14;\n          puVar12[0xe] = uVar6;\n          puVar12[0xf] = uVar20;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          if (dVar33 <= dVar37) {\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar37 = dVar37 + dVar36;\n          if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n            uVar25 = (uint)dVar37;\n          }\n          else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          uVar20 = (undefined1)(uVar25 >> 0x18);\n          uVar6 = (undefined1)(uVar25 >> 0x10);\n          uVar14 = (undefined1)(uVar25 >> 8);\n          uVar16 = (undefined1)uVar25;\n          if (quantum_info->endian == LSBEndian) goto LAB_00166084;\nLAB_00165e24:\n          puVar12[0xc] = uVar20;\n          puVar12[0xd] = uVar6;\n          puVar12[0xe] = uVar14;\n          puVar12[0xf] = uVar16;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        if (puVar29 == q) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar25 != 0x40) goto LAB_00165538;\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x20);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          *puVar12 = uVar14;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar6;\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar24;\n          puVar12[6] = uVar7;\n          puVar12[7] = SUB81(dVar33,0);\n        }\n        else {\n          *puVar12 = SUB81(dVar33,0);\n          puVar12[1] = uVar7;\n          puVar12[2] = uVar24;\n          puVar12[3] = uVar16;\n          puVar12[4] = uVar6;\n          puVar12[5] = uVar22;\n          puVar12[6] = uVar20;\n          puVar12[7] = uVar14;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[8] = uVar6;\n          puVar12[9] = uVar16;\n          puVar12[10] = uVar20;\n          puVar12[0xb] = uVar22;\n          puVar12[0xc] = uVar14;\n          puVar12[0xd] = uVar24;\n          puVar12[0xe] = uVar7;\n          puVar12[0xf] = uVar23;\n        }\n        else {\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar7;\n          puVar12[10] = uVar24;\n          puVar12[0xb] = uVar14;\n          puVar12[0xc] = uVar22;\n          puVar12[0xd] = uVar20;\n          puVar12[0xe] = uVar16;\n          puVar12[0xf] = uVar6;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x10] = uVar6;\n          puVar12[0x11] = uVar16;\n          puVar12[0x12] = uVar20;\n          puVar12[0x13] = uVar22;\n          puVar12[0x14] = uVar14;\n          puVar12[0x15] = uVar24;\n          puVar12[0x16] = uVar7;\n          puVar12[0x17] = uVar23;\n        }\n        else {\n          puVar12[0x10] = uVar23;\n          puVar12[0x11] = uVar7;\n          puVar12[0x12] = uVar24;\n          puVar12[0x13] = uVar14;\n          puVar12[0x14] = uVar22;\n          puVar12[0x15] = uVar20;\n          puVar12[0x16] = uVar16;\n          puVar12[0x17] = uVar6;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n        }\n        else {\n          dVar33 = 0.0;\n        }\n        dVar33 = dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x18] = uVar6;\n          puVar12[0x19] = uVar16;\n          puVar12[0x1a] = uVar20;\n          puVar12[0x1b] = uVar22;\n          puVar12[0x1c] = uVar14;\n          puVar12[0x1d] = uVar24;\n          puVar12[0x1e] = uVar7;\n          puVar12[0x1f] = uVar23;\n        }\n        else {\n          puVar12[0x18] = uVar23;\n          puVar12[0x19] = uVar7;\n          puVar12[0x1a] = uVar24;\n          puVar12[0x1b] = uVar14;\n          puVar12[0x1c] = uVar22;\n          puVar12[0x1d] = uVar20;\n          puVar12[0x1e] = uVar16;\n          puVar12[0x1f] = uVar6;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20);\n      } while (puVar29 != q);\n      return;\n    }\n  }\n  uVar9 = 0;\n  if (uVar25 < 0x41) {\n    uVar9 = uVar25;\n  }\n  uVar9 = uVar9 - 1;\n  uVar11 = 2 << (uVar9 & 0x1f);\n  uVar17 = uVar11;\n  uVar10 = 1 >> (~uVar9 & 0x1f);\n  if ((uVar9 & 0x20) != 0) {\n    uVar17 = 0;\n    uVar10 = uVar11;\n  }\n  local_b8 = uVar17 - 1;\n  local_c0 = (uint)(local_b8 < uVar17) + (uVar10 - 1);\nLAB_0016507c:\n  if ((int)q < 1) {\n    return;\n  }\n  uVar44 = 0;\n  pPVar8 = image->channel_map;\n  puVar29 = (uchar *)0x0;\n  dVar47 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n  dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n  dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n  fVar42 = *(float *)(number_pixels._0_4_ + pPVar8[2].offset * 4);\n  dVar33 = dVar37;\n  dVar34 = dVar47;\n  dVar35 = dVar45;\n  dVar36 = dVar37;\n  if (!NAN(fVar42)) goto LAB_001650f0;\nLAB_00165520:\n  do {\n    uVar51 = 0;\nLAB_00165130:\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    iVar26 = (int)(number_pixels >> 0x20);\n    pbVar31 = (byte *)number_pixels;\n    sVar27 = (quantum_info->state).bits;\n    if (sVar27 == 0) {\n      sVar27 = 8;\n      (quantum_info->state).bits = 8;\n    }\n    if ((int)uVar25 < 1) {\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      if (!NAN(fVar42)) goto LAB_00165204;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001651e4;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001651e4:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655cc:\n        uVar51 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar42 <= (float)uVar44) goto LAB_001655cc;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar36) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if ((int)uVar25 < 1) {\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      if (!NAN(fVar42)) goto LAB_0016531c;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001652fc;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001652fc:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655c0:\n        uVar51 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar42 <= (float)uVar44) goto LAB_001655c0;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if ((int)uVar25 < 1) {\n      if (pPVar8[4].traits == BlendPixelTrait) goto LAB_0016554c;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_00165418;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_00165418:\n      pPVar8 = image->channel_map;\n      uVar25 = quantum_info->depth;\n      if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_0016554c:\n        fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n        if (fVar42 <= (float)uVar44) goto LAB_00165430;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar51 = 0;\n      }\n      if (sVar27 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if (0 < (int)uVar25) {\n      do {\n        uVar17 = (quantum_info->state).bits;\n        uVar10 = uVar17;\n        if (uVar25 <= uVar17) {\n          uVar10 = uVar25;\n        }\n        uVar11 = uVar25 - uVar10;\n        uVar25 = uVar11;\n        if ((int)uVar11 < 0) {\n          uVar25 = 0;\n        }\n        if (uVar17 == 8) {\n          *pbVar31 = 0;\n        }\n        uVar28 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n        if ((uVar25 & 0x20) != 0) {\n          uVar28 = uVar9 >> (uVar25 & 0x1f);\n        }\n        uVar17 = uVar17 - uVar10;\n        (quantum_info->state).bits = uVar17;\n        bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f));\n        if ((uVar17 & 0x20) != 0) {\n          bVar15 = 0;\n        }\n        *pbVar31 = bVar15 | *pbVar31;\n        if (uVar17 == 0) {\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n        }\n      } while (0 < (int)uVar11);\n    }\n    puVar29 = puVar29 + 1;\n    iVar26 = iVar26 + image->number_channels * 4;\n    number_pixels = CONCAT44(iVar26,pbVar31 + quantum_info->pad);\n    if (puVar29 == q) {\n      return;\n    }\n    pPVar8 = image->channel_map;\n    fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n    uVar25 = quantum_info->depth;\n  } while (NAN(fVar42));\nLAB_001650f0:\n  if (fVar42 <= (float)uVar44) goto LAB_00165520;\n  dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n  dVar46 = (dVar46 * (double)fVar42) / dVar34;\n  if (dVar46 < dVar33) {\n    uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar35);\n  }\n  else {\n    uVar51 = 0xffffffffffffffff;\n  }\n  goto LAB_00165130;\n}" primitive_type (function_declarator "ExportBGROQuantum(Image *image,QuantumInfo *quantum_info,MagickSizeType number_pixels,\n                      Quantum *p,uchar *q,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,QuantumInfo *quantum_info,MagickSizeType number_pixels,\n                      Quantum *p,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  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined1 uVar6;\n  undefined1 uVar7;\n  ushort uVar5;\n  PixelChannelMap *pPVar8;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  uint uVar9;\n  uint extraout_v1_02;\n  uint extraout_v1_03;\n  uint extraout_v1_04;\n  uint uVar10;\n  uint extraout_v1_05;\n  uint extraout_v1_06;\n  uint extraout_v1_07;\n  uint extraout_v1_08;\n  uint extraout_v1_09;\n  undefined1 uVar14;\n  byte bVar15;\n  uint uVar11;\n  undefined1 *puVar12;\n  undefined1 *puVar13;\n  undefined1 uVar16;\n  uint uVar17;\n  uint uVar18;\n  EndianType EVar19;\n  undefined1 uVar20;\n  undefined1 uVar22;\n  undefined1 uVar23;\n  PixelTrait PVar21;\n  undefined1 uVar24;\n  uint uVar25;\n  int iVar26;\n  size_t sVar27;\n  uint uVar28;\n  uchar *puVar29;\n  int iVar30;\n  byte *pbVar31;\n  int iVar32;\n  double dVar33;\n  float fVar39;\n  double dVar34;\n  double dVar35;\n  double dVar36;\n  double dVar37;\n  float fVar40;\n  double dVar38;\n  undefined2 uVar41;\n  float fVar42;\n  ulonglong uVar43;\n  undefined8 uVar44;\n  double dVar45;\n  double dVar46;\n  double dVar47;\n  double dVar48;\n  double dVar49;\n  double dVar50;\n  undefined8 uVar51;\n  int local_c0;\n  uint local_b8;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar3 = PTR_s_t_to_left_003a88e4;\n  puVar2 = PTR_LAB_003a88e0;\n  if (exception == (ExceptionInfo *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  if (exception->signature != 0xabacadab) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  uVar25 = quantum_info->depth;\n  if (uVar25 == 0x10) {\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      EVar19 = LSBEndian;\n      PVar21 = BlendPixelTrait;\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar43 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar33 = dVar36;\n      dVar34 = dVar36;\n      dVar35 = dVar36;\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          puVar12[2] = (char)uVar5;\n          puVar12[3] = uVar6;\n        }\n        else {\n          puVar12[2] = uVar6;\n          puVar12[3] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 4;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 2;\n        if (image->channel_map[4].traits == PVar21) {\n          fVar39 = (float)((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35);\n        }\n        else {\n          fVar39 = 0.0;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar39);\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 2);\n      } while (puVar29 != q);\n      return;\n    }\n    if ((int)q < 1) {\n      return;\n    }\n    puVar29 = (uchar *)0x0;\n    fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar34 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      iVar26 = (int)(number_pixels >> 0x20);\n      puVar12 = (undefined1 *)number_pixels;\n      fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165b70;\nLAB_00165d84:\n        *puVar12 = uVar14;\n        puVar12[1] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d84;\nLAB_00165b70:\n        *puVar12 = uVar6;\n        puVar12[1] = uVar20;\n      }\n      fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165be4;\nLAB_00165d64:\n        puVar12[2] = uVar14;\n        puVar12[3] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d64;\nLAB_00165be4:\n        puVar12[2] = uVar6;\n        puVar12[3] = uVar20;\n      }\n      fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c5c;\nLAB_00165d44:\n        puVar12[4] = uVar14;\n        puVar12[5] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d44;\nLAB_00165c5c:\n        puVar12[4] = uVar6;\n        puVar12[5] = uVar20;\n      }\n      if ((image->channel_map[4].traits != BlendPixelTrait) ||\n         (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0)) {\n        uVar6 = 0;\n        uVar14 = 0;\nLAB_00165c80:\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c8c;\nLAB_00165d24:\n        puVar12[6] = uVar6;\n        puVar12[7] = uVar14;\n      }\n      else {\n        if (fVar39 <= fVar42) {\n          uVar6 = 0xff;\n          uVar14 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar35 = (double)fVar42 + dVar34;\n        if (dVar35 < dVar33) {\n          uVar41 = (undefined2)(int)dVar35;\n        }\n        else {\n          uVar41 = (undefined2)(int)(dVar35 - dVar33);\n        }\n        uVar14 = (undefined1)((ushort)uVar41 >> 8);\n        uVar6 = (undefined1)uVar41;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d24;\nLAB_00165c8c:\n        puVar12[6] = uVar14;\n        puVar12[7] = uVar6;\n      }\n      puVar29 = puVar29 + 1;\n      number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 8);\n      if (puVar29 == q) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar25 < 0x11) {\n    if (uVar25 == 8) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        *puVar12 = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[1] = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[2] = uVar6;\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[3] = uVar6;\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 4);\n      } while (puVar29 != q);\n      return;\n    }\n    if (uVar25 == 10) {\n      if (quantum_info->pack == MagickFalse) {\n        if ((int)q < 1) {\n          return;\n        }\n        iVar26 = 0;\n        uVar25 = 0;\n        dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar43 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar34 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar32 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          iVar30 = 0;\n          dVar48 = *(double *)(puVar4 + -0x7538);\n          dVar50 = *(double *)(puVar2 + 0x1418);\n          dVar46 = *(double *)(puVar2 + 0x1a58);\n          dVar45 = *(double *)(puVar2 + 0x1a60);\n          dVar49 = *(double *)(puVar2 + 0x1400);\n          dVar47 = dVar50;\n          do {\n            pPVar8 = image->channel_map;\n            if (iVar30 == 2) {\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }\n            else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar9 = (uint)(iVar30 + iVar26) % 3;\n            if (uVar9 == 1) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }\n            iVar30 = iVar30 + 1;\n          } while (iVar30 != 4);\n          iVar26 = iVar26 + 4;\n          number_pixels = CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (iVar26 == (int)q << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (quantum_info->quantum == 0x20) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar25 = 10;\n        dVar33 = dVar45;\n        dVar34 = dVar46;\n        dVar35 = dVar48;\n        dVar36 = dVar49;\n        dVar37 = dVar48;\n        dVar47 = dVar46;\n        while( true ) {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n          if (NAN(fVar42)) {\n            uVar9 = 0;\n          }\n          else {\n            uVar9 = 0;\n            if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }\n          }\n          uVar10 = (quantum_info->state).bits;\n          if (uVar10 == 0) {\n            uVar10 = 0x20;\n            (quantum_info->state).bits = 0x20;\n          }\n          if (0 < (int)uVar25) {\n            bVar1 = uVar10 < uVar25;\n            uVar17 = uVar25;\n            puVar13 = puVar12;\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar17);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar12 = puVar13;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          if ((pPVar8[4].traits != BlendPixelTrait) ||\n             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          uVar10 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            while( true ) {\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (puVar29 == q) break;\n          uVar25 = quantum_info->depth;\n        }\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar25 = 10;\n      dVar33 = dVar45;\n      dVar34 = dVar46;\n      dVar35 = dVar48;\n      dVar36 = dVar49;\n      dVar37 = dVar48;\n      dVar47 = dVar46;\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        pbVar31 = (byte *)number_pixels;\n        pPVar8 = image->channel_map;\n        fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n        if (NAN(fVar42)) {\n          uVar9 = 0;\n        }\n        else {\n          uVar9 = 0;\n          if (0.0 < fVar42) {\n            dVar50 = ((double)fVar42 * dVar35) / dVar34;\n            if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n        }\n        sVar27 = (quantum_info->state).bits;\n        if (sVar27 == 0) {\n          sVar27 = 8;\n          (quantum_info->state).bits = 8;\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166458;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_00166434:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cbc:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166550;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016652c:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cb4:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          uVar10 = 0;\n          uVar9 = uVar25;\n          if (pPVar8[4].traits == BlendPixelTrait) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016662c:\n          pPVar8 = image->channel_map;\n          uVar25 = quantum_info->depth;\n          if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n            if (fVar42 <= 0.0) goto LAB_00166640;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar10 = 0;\n          }\n          uVar9 = uVar25;\n          if (sVar27 == 0) {\n            (quantum_info->state).bits = 8;\n          }\n        }\n        while (0 < (int)uVar9) {\n          uVar11 = (quantum_info->state).bits;\n          uVar17 = uVar11;\n          if (uVar25 <= uVar11) {\n            uVar17 = uVar25;\n          }\n          uVar9 = uVar25 - uVar17;\n          uVar25 = uVar9;\n          if ((int)uVar9 < 0) {\n            uVar25 = 0;\n          }\n          if (uVar11 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar28 = uVar10 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar28 = 0;\n          }\n          uVar11 = uVar11 - uVar17;\n          (quantum_info->state).bits = uVar11;\n          bVar15 = (byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f));\n          if ((uVar11 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar11 == 0) {\n            pbVar31 = pbVar31 + 1;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels = CONCAT44(iVar26 + image->number_channels * 4,pbVar31 + quantum_info->pad);\n        if (puVar29 == q) {\n          return;\n        }\n        uVar25 = quantum_info->depth;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar25 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar25 == 0x20) {\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *puVar12 = uVar6;\n            puVar12[1] = uVar14;\n            puVar12[2] = uVar16;\n            puVar12[3] = SUB41(fVar42,0);\n          }\n          else {\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[4] = uVar6;\n            puVar12[5] = uVar14;\n            puVar12[6] = uVar16;\n            puVar12[7] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[8] = uVar6;\n            puVar12[9] = uVar14;\n            puVar12[10] = uVar16;\n            puVar12[0xb] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n          }\n          else {\n            dVar33 = 0.0;\n          }\n          fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[0xc] = uVar6;\n            puVar12[0xd] = uVar14;\n            puVar12[0xe] = uVar16;\n            puVar12[0xf] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels =\n               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        } while (puVar29 != q);\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165ecc;\nLAB_001660ec:\n          *puVar12 = uVar16;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660ec;\nLAB_00165ecc:\n          *puVar12 = uVar23;\n          puVar12[1] = uVar6;\n          puVar12[2] = uVar14;\n          puVar12[3] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165f54;\nLAB_0016611c:\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar20;\n          puVar12[6] = uVar22;\n          puVar12[7] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_0016611c;\nLAB_00165f54:\n          puVar12[4] = uVar23;\n          puVar12[5] = uVar6;\n          puVar12[6] = uVar14;\n          puVar12[7] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165fe8;\nLAB_001660b8:\n          puVar12[8] = uVar16;\n          puVar12[9] = uVar20;\n          puVar12[10] = uVar22;\n          puVar12[0xb] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660b8;\nLAB_00165fe8:\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar6;\n          puVar12[10] = uVar14;\n          puVar12[0xb] = uVar7;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar16 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar20 = 0;\nLAB_00165e14:\n          if (quantum_info->endian != LSBEndian) goto LAB_00165e24;\nLAB_00166084:\n          puVar12[0xc] = uVar16;\n          puVar12[0xd] = uVar14;\n          puVar12[0xe] = uVar6;\n          puVar12[0xf] = uVar20;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          if (dVar33 <= dVar37) {\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar37 = dVar37 + dVar36;\n          if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n            uVar25 = (uint)dVar37;\n          }\n          else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          uVar20 = (undefined1)(uVar25 >> 0x18);\n          uVar6 = (undefined1)(uVar25 >> 0x10);\n          uVar14 = (undefined1)(uVar25 >> 8);\n          uVar16 = (undefined1)uVar25;\n          if (quantum_info->endian == LSBEndian) goto LAB_00166084;\nLAB_00165e24:\n          puVar12[0xc] = uVar20;\n          puVar12[0xd] = uVar6;\n          puVar12[0xe] = uVar14;\n          puVar12[0xf] = uVar16;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        if (puVar29 == q) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar25 != 0x40) goto LAB_00165538;\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x20);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          *puVar12 = uVar14;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar6;\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar24;\n          puVar12[6] = uVar7;\n          puVar12[7] = SUB81(dVar33,0);\n        }\n        else {\n          *puVar12 = SUB81(dVar33,0);\n          puVar12[1] = uVar7;\n          puVar12[2] = uVar24;\n          puVar12[3] = uVar16;\n          puVar12[4] = uVar6;\n          puVar12[5] = uVar22;\n          puVar12[6] = uVar20;\n          puVar12[7] = uVar14;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[8] = uVar6;\n          puVar12[9] = uVar16;\n          puVar12[10] = uVar20;\n          puVar12[0xb] = uVar22;\n          puVar12[0xc] = uVar14;\n          puVar12[0xd] = uVar24;\n          puVar12[0xe] = uVar7;\n          puVar12[0xf] = uVar23;\n        }\n        else {\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar7;\n          puVar12[10] = uVar24;\n          puVar12[0xb] = uVar14;\n          puVar12[0xc] = uVar22;\n          puVar12[0xd] = uVar20;\n          puVar12[0xe] = uVar16;\n          puVar12[0xf] = uVar6;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x10] = uVar6;\n          puVar12[0x11] = uVar16;\n          puVar12[0x12] = uVar20;\n          puVar12[0x13] = uVar22;\n          puVar12[0x14] = uVar14;\n          puVar12[0x15] = uVar24;\n          puVar12[0x16] = uVar7;\n          puVar12[0x17] = uVar23;\n        }\n        else {\n          puVar12[0x10] = uVar23;\n          puVar12[0x11] = uVar7;\n          puVar12[0x12] = uVar24;\n          puVar12[0x13] = uVar14;\n          puVar12[0x14] = uVar22;\n          puVar12[0x15] = uVar20;\n          puVar12[0x16] = uVar16;\n          puVar12[0x17] = uVar6;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n        }\n        else {\n          dVar33 = 0.0;\n        }\n        dVar33 = dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x18] = uVar6;\n          puVar12[0x19] = uVar16;\n          puVar12[0x1a] = uVar20;\n          puVar12[0x1b] = uVar22;\n          puVar12[0x1c] = uVar14;\n          puVar12[0x1d] = uVar24;\n          puVar12[0x1e] = uVar7;\n          puVar12[0x1f] = uVar23;\n        }\n        else {\n          puVar12[0x18] = uVar23;\n          puVar12[0x19] = uVar7;\n          puVar12[0x1a] = uVar24;\n          puVar12[0x1b] = uVar14;\n          puVar12[0x1c] = uVar22;\n          puVar12[0x1d] = uVar20;\n          puVar12[0x1e] = uVar16;\n          puVar12[0x1f] = uVar6;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20);\n      } while (puVar29 != q);\n      return;\n    }\n  }\n  uVar9 = 0;\n  if (uVar25 < 0x41) {\n    uVar9 = uVar25;\n  }\n  uVar9 = uVar9 - 1;\n  uVar11 = 2 << (uVar9 & 0x1f);\n  uVar17 = uVar11;\n  uVar10 = 1 >> (~uVar9 & 0x1f);\n  if ((uVar9 & 0x20) != 0) {\n    uVar17 = 0;\n    uVar10 = uVar11;\n  }\n  local_b8 = uVar17 - 1;\n  local_c0 = (uint)(local_b8 < uVar17) + (uVar10 - 1);\nLAB_0016507c:\n  if ((int)q < 1) {\n    return;\n  }\n  uVar44 = 0;\n  pPVar8 = image->channel_map;\n  puVar29 = (uchar *)0x0;\n  dVar47 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n  dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n  dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n  fVar42 = *(float *)(number_pixels._0_4_ + pPVar8[2].offset * 4);\n  dVar33 = dVar37;\n  dVar34 = dVar47;\n  dVar35 = dVar45;\n  dVar36 = dVar37;\n  if (!NAN(fVar42)) goto LAB_001650f0;\nLAB_00165520:\n  do {\n    uVar51 = 0;\nLAB_00165130:\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    iVar26 = (int)(number_pixels >> 0x20);\n    pbVar31 = (byte *)number_pixels;\n    sVar27 = (quantum_info->state).bits;\n    if (sVar27 == 0) {\n      sVar27 = 8;\n      (quantum_info->state).bits = 8;\n    }\n    if ((int)uVar25 < 1) {\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      if (!NAN(fVar42)) goto LAB_00165204;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001651e4;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001651e4:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655cc:\n        uVar51 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar42 <= (float)uVar44) goto LAB_001655cc;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar36) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if ((int)uVar25 < 1) {\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      if (!NAN(fVar42)) goto LAB_0016531c;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001652fc;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001652fc:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655c0:\n        uVar51 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar42 <= (float)uVar44) goto LAB_001655c0;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if ((int)uVar25 < 1) {\n      if (pPVar8[4].traits == BlendPixelTrait) goto LAB_0016554c;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_00165418;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_00165418:\n      pPVar8 = image->channel_map;\n      uVar25 = quantum_info->depth;\n      if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_0016554c:\n        fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n        if (fVar42 <= (float)uVar44) goto LAB_00165430;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar51 = 0;\n      }\n      if (sVar27 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if (0 < (int)uVar25) {\n      do {\n        uVar17 = (quantum_info->state).bits;\n        uVar10 = uVar17;\n        if (uVar25 <= uVar17) {\n          uVar10 = uVar25;\n        }\n        uVar11 = uVar25 - uVar10;\n        uVar25 = uVar11;\n        if ((int)uVar11 < 0) {\n          uVar25 = 0;\n        }\n        if (uVar17 == 8) {\n          *pbVar31 = 0;\n        }\n        uVar28 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n        if ((uVar25 & 0x20) != 0) {\n          uVar28 = uVar9 >> (uVar25 & 0x1f);\n        }\n        uVar17 = uVar17 - uVar10;\n        (quantum_info->state).bits = uVar17;\n        bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f));\n        if ((uVar17 & 0x20) != 0) {\n          bVar15 = 0;\n        }\n        *pbVar31 = bVar15 | *pbVar31;\n        if (uVar17 == 0) {\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n        }\n      } while (0 < (int)uVar11);\n    }\n    puVar29 = puVar29 + 1;\n    iVar26 = iVar26 + image->number_channels * 4;\n    number_pixels = CONCAT44(iVar26,pbVar31 + quantum_info->pad);\n    if (puVar29 == q) {\n      return;\n    }\n    pPVar8 = image->channel_map;\n    fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n    uVar25 = quantum_info->depth;\n  } while (NAN(fVar42));\nLAB_001650f0:\n  if (fVar42 <= (float)uVar44) goto LAB_00165520;\n  dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n  dVar46 = (dVar46 * (double)fVar42) / dVar34;\n  if (dVar46 < dVar33) {\n    uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar35);\n  }\n  else {\n    uVar51 = 0xffffffffffffffff;\n  }\n  goto LAB_00165130;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined1 uVar6;" type_identifier identifier ;) (declaration "undefined1 uVar7;" type_identifier identifier ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "PixelChannelMap *pPVar8;" type_identifier (pointer_declarator "*pPVar8" * identifier) ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int extraout_v1_00;" primitive_type identifier ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint extraout_v1_02;" type_identifier identifier ;) (declaration "uint extraout_v1_03;" type_identifier identifier ;) (declaration "uint extraout_v1_04;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint extraout_v1_05;" type_identifier identifier ;) (declaration "uint extraout_v1_06;" type_identifier identifier ;) (declaration "uint extraout_v1_07;" type_identifier identifier ;) (declaration "uint extraout_v1_08;" type_identifier identifier ;) (declaration "uint extraout_v1_09;" type_identifier identifier ;) (declaration "undefined1 uVar14;" type_identifier identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined1 uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "EndianType EVar19;" type_identifier identifier ;) (declaration "undefined1 uVar20;" type_identifier identifier ;) (declaration "undefined1 uVar22;" type_identifier identifier ;) (declaration "undefined1 uVar23;" type_identifier identifier ;) (declaration "PixelTrait PVar21;" type_identifier identifier ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "size_t sVar27;" primitive_type identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "uchar *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "int iVar32;" primitive_type identifier ;) (declaration "double dVar33;" primitive_type identifier ;) (declaration "float fVar39;" primitive_type identifier ;) (declaration "double dVar34;" primitive_type identifier ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "double dVar36;" primitive_type identifier ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "float fVar40;" primitive_type identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "undefined2 uVar41;" type_identifier identifier ;) (declaration "float fVar42;" primitive_type identifier ;) (declaration "ulonglong uVar43;" type_identifier identifier ;) (declaration "undefined8 uVar44;" type_identifier identifier ;) (declaration "double dVar45;" primitive_type identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "double dVar47;" primitive_type identifier ;) (declaration "double dVar48;" primitive_type identifier ;) (declaration "double dVar49;" primitive_type identifier ;) (declaration "double dVar50;" primitive_type identifier ;) (declaration "undefined8 uVar51;" type_identifier identifier ;) (declaration "int local_c0;" primitive_type identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (expression_statement "puVar4 = PTR_s_courses_003a88ec;" (assignment_expression "puVar4 = PTR_s_courses_003a88ec" identifier = identifier) ;) (expression_statement "puVar3 = PTR_s_t_to_left_003a88e4;" (assignment_expression "puVar3 = PTR_s_t_to_left_003a88e4" identifier = identifier) ;) (expression_statement "puVar2 = PTR_LAB_003a88e0;" (assignment_expression "puVar2 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if (exception == (ExceptionInfo *)0x0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" if (parenthesized_expression "(exception == (ExceptionInfo *)0x0)" ( (binary_expression "exception == (ExceptionInfo *)0x0" identifier == (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1cac" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x7af0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x75c0" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" if (parenthesized_expression "(exception->signature != 0xabacadab)" ( (binary_expression "exception->signature != 0xabacadab" (field_expression "exception->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0)" ( (binary_expression "PTR_LAB_003a88e0 + 0x294c" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x7af0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x75c0" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar25 = quantum_info->depth;" (assignment_expression "uVar25 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (uVar25 == 0x10) {\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      EVar19 = LSBEndian;\n      PVar21 = BlendPixelTrait;\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar43 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar33 = dVar36;\n      dVar34 = dVar36;\n      dVar35 = dVar36;\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          puVar12[2] = (char)uVar5;\n          puVar12[3] = uVar6;\n        }\n        else {\n          puVar12[2] = uVar6;\n          puVar12[3] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 4;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 2;\n        if (image->channel_map[4].traits == PVar21) {\n          fVar39 = (float)((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35);\n        }\n        else {\n          fVar39 = 0.0;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar39);\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 2);\n      } while (puVar29 != q);\n      return;\n    }\n    if ((int)q < 1) {\n      return;\n    }\n    puVar29 = (uchar *)0x0;\n    fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar34 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      iVar26 = (int)(number_pixels >> 0x20);\n      puVar12 = (undefined1 *)number_pixels;\n      fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165b70;\nLAB_00165d84:\n        *puVar12 = uVar14;\n        puVar12[1] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d84;\nLAB_00165b70:\n        *puVar12 = uVar6;\n        puVar12[1] = uVar20;\n      }\n      fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165be4;\nLAB_00165d64:\n        puVar12[2] = uVar14;\n        puVar12[3] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d64;\nLAB_00165be4:\n        puVar12[2] = uVar6;\n        puVar12[3] = uVar20;\n      }\n      fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c5c;\nLAB_00165d44:\n        puVar12[4] = uVar14;\n        puVar12[5] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d44;\nLAB_00165c5c:\n        puVar12[4] = uVar6;\n        puVar12[5] = uVar20;\n      }\n      if ((image->channel_map[4].traits != BlendPixelTrait) ||\n         (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0)) {\n        uVar6 = 0;\n        uVar14 = 0;\nLAB_00165c80:\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c8c;\nLAB_00165d24:\n        puVar12[6] = uVar6;\n        puVar12[7] = uVar14;\n      }\n      else {\n        if (fVar39 <= fVar42) {\n          uVar6 = 0xff;\n          uVar14 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar35 = (double)fVar42 + dVar34;\n        if (dVar35 < dVar33) {\n          uVar41 = (undefined2)(int)dVar35;\n        }\n        else {\n          uVar41 = (undefined2)(int)(dVar35 - dVar33);\n        }\n        uVar14 = (undefined1)((ushort)uVar41 >> 8);\n        uVar6 = (undefined1)uVar41;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d24;\nLAB_00165c8c:\n        puVar12[6] = uVar14;\n        puVar12[7] = uVar6;\n      }\n      puVar29 = puVar29 + 1;\n      number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 8);\n      if (puVar29 == q) {\n        return;\n      }\n    } while( true );\n  }" if (parenthesized_expression "(uVar25 == 0x10)" ( (binary_expression "uVar25 == 0x10" identifier == number_literal) )) (compound_statement "{\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      EVar19 = LSBEndian;\n      PVar21 = BlendPixelTrait;\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar43 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar33 = dVar36;\n      dVar34 = dVar36;\n      dVar35 = dVar36;\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          puVar12[2] = (char)uVar5;\n          puVar12[3] = uVar6;\n        }\n        else {\n          puVar12[2] = uVar6;\n          puVar12[3] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 4;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 2;\n        if (image->channel_map[4].traits == PVar21) {\n          fVar39 = (float)((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35);\n        }\n        else {\n          fVar39 = 0.0;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar39);\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 2);\n      } while (puVar29 != q);\n      return;\n    }\n    if ((int)q < 1) {\n      return;\n    }\n    puVar29 = (uchar *)0x0;\n    fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar34 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      iVar26 = (int)(number_pixels >> 0x20);\n      puVar12 = (undefined1 *)number_pixels;\n      fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165b70;\nLAB_00165d84:\n        *puVar12 = uVar14;\n        puVar12[1] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d84;\nLAB_00165b70:\n        *puVar12 = uVar6;\n        puVar12[1] = uVar20;\n      }\n      fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165be4;\nLAB_00165d64:\n        puVar12[2] = uVar14;\n        puVar12[3] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d64;\nLAB_00165be4:\n        puVar12[2] = uVar6;\n        puVar12[3] = uVar20;\n      }\n      fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c5c;\nLAB_00165d44:\n        puVar12[4] = uVar14;\n        puVar12[5] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d44;\nLAB_00165c5c:\n        puVar12[4] = uVar6;\n        puVar12[5] = uVar20;\n      }\n      if ((image->channel_map[4].traits != BlendPixelTrait) ||\n         (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0)) {\n        uVar6 = 0;\n        uVar14 = 0;\nLAB_00165c80:\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c8c;\nLAB_00165d24:\n        puVar12[6] = uVar6;\n        puVar12[7] = uVar14;\n      }\n      else {\n        if (fVar39 <= fVar42) {\n          uVar6 = 0xff;\n          uVar14 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar35 = (double)fVar42 + dVar34;\n        if (dVar35 < dVar33) {\n          uVar41 = (undefined2)(int)dVar35;\n        }\n        else {\n          uVar41 = (undefined2)(int)(dVar35 - dVar33);\n        }\n        uVar14 = (undefined1)((ushort)uVar41 >> 8);\n        uVar6 = (undefined1)uVar41;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d24;\nLAB_00165c8c:\n        puVar12[6] = uVar14;\n        puVar12[7] = uVar6;\n      }\n      puVar29 = puVar29 + 1;\n      number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 8);\n      if (puVar29 == q) {\n        return;\n      }\n    } while( true );\n  }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      EVar19 = LSBEndian;\n      PVar21 = BlendPixelTrait;\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar43 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar33 = dVar36;\n      dVar34 = dVar36;\n      dVar35 = dVar36;\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          puVar12[2] = (char)uVar5;\n          puVar12[3] = uVar6;\n        }\n        else {\n          puVar12[2] = uVar6;\n          puVar12[3] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 4;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 2;\n        if (image->channel_map[4].traits == PVar21) {\n          fVar39 = (float)((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35);\n        }\n        else {\n          fVar39 = 0.0;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar39);\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 2);\n      } while (puVar29 != q);\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)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      EVar19 = LSBEndian;\n      PVar21 = BlendPixelTrait;\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar43 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar33 = dVar36;\n      dVar34 = dVar36;\n      dVar35 = dVar36;\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          puVar12[2] = (char)uVar5;\n          puVar12[3] = uVar6;\n        }\n        else {\n          puVar12[2] = uVar6;\n          puVar12[3] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 4;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 2;\n        if (image->channel_map[4].traits == PVar21) {\n          fVar39 = (float)((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35);\n        }\n        else {\n          fVar39 = 0.0;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar39);\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 2);\n      } while (puVar29 != q);\n      return;\n    }" { (if_statement "if ((int)q < 1) {\n        return;\n      }" if (parenthesized_expression "((int)q < 1)" ( (binary_expression "(int)q < 1" (cast_expression "(int)q" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "puVar29 = (uchar *)0x0;" (assignment_expression "puVar29 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "EVar19 = LSBEndian;" (assignment_expression "EVar19 = LSBEndian" identifier = identifier) ;) (expression_statement "PVar21 = BlendPixelTrait;" (assignment_expression "PVar21 = BlendPixelTrait" identifier = identifier) ;) (expression_statement "dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1440);" (assignment_expression "dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1440)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1440)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1440)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1440" identifier + number_literal) ))))) ;) (expression_statement "uVar43 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "uVar43 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar33 = dVar36;" (assignment_expression "dVar33 = dVar36" identifier = identifier) ;) (expression_statement "dVar34 = dVar36;" (assignment_expression "dVar34 = dVar36" identifier = identifier) ;) (expression_statement "dVar35 = dVar36;" (assignment_expression "dVar35 = dVar36" identifier = identifier) ;) (do_statement "do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          puVar12[2] = (char)uVar5;\n          puVar12[3] = uVar6;\n        }\n        else {\n          puVar12[2] = uVar6;\n          puVar12[3] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 4;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 2;\n        if (image->channel_map[4].traits == PVar21) {\n          fVar39 = (float)((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35);\n        }\n        else {\n          fVar39 = 0.0;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar39);\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 2);\n      } while (puVar29 != q);" do (compound_statement "{\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          puVar12[2] = (char)uVar5;\n          puVar12[3] = uVar6;\n        }\n        else {\n          puVar12[2] = uVar6;\n          puVar12[3] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 4;\n        uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33));\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar12 = puVar12 + 2;\n        if (image->channel_map[4].traits == PVar21) {\n          fVar39 = (float)((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35);\n        }\n        else {\n          fVar39 = 0.0;\n        }\n        uVar5 = SinglePrecisionToHalf(fVar39);\n        uVar6 = (undefined1)(uVar5 >> 8);\n        if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 2);\n      }" { (expression_statement "iVar26 = (int)(number_pixels >> 0x20);" (assignment_expression "iVar26 = (int)(number_pixels >> 0x20)" identifier = (cast_expression "(int)(number_pixels >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(number_pixels >> 0x20)" ( (binary_expression "number_pixels >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "puVar12 = (undefined1 *)number_pixels;" (assignment_expression "puVar12 = (undefined1 *)number_pixels" identifier = (cast_expression "(undefined1 *)number_pixels" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36));" (assignment_expression "uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36))" identifier = (call_expression "SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36))" identifier (argument_list "((float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36))" ( (cast_expression "(float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36)" ( (binary_expression "(double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                                  dVar36" (cast_expression "(double)*(float *)(iVar26 + image->channel_map[2].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar26 + image->channel_map[2].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[2].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[2].offset * 4" identifier + (binary_expression "image->channel_map[2].offset * 4" (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) * identifier) ))) )))) ;) (expression_statement "uVar6 = (undefined1)(uVar5 >> 8);" (assignment_expression "uVar6 = (undefined1)(uVar5 >> 8)" identifier = (call_expression "(undefined1)(uVar5 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar5 >> 8)" ( (binary_expression "uVar5 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }" if (parenthesized_expression "(quantum_info->endian == EVar19)" ( (binary_expression "quantum_info->endian == EVar19" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }" { (expression_statement "*puVar12 = (char)uVar5;" (assignment_expression "*puVar12 = (char)uVar5" (pointer_expression "*puVar12" * identifier) = (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar12[1] = uVar6;" (assignment_expression "puVar12[1] = uVar6" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }" else (compound_statement "{\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }" { (expression_statement "*puVar12 = uVar6;" (assignment_expression "*puVar12 = uVar6" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "puVar12[1] = (char)uVar5;" (assignment_expression "puVar12[1] = (char)uVar5" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34));" (assignment_expression "uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34))" identifier = (call_expression "SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34))" identifier (argument_list "((float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34))" ( (cast_expression "(float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34)" ( (binary_expression "(double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                                  dVar34" (cast_expression "(double)*(float *)(iVar26 + image->channel_map[1].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar26 + image->channel_map[1].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[1].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[1].offset * 4" identifier + (binary_expression "image->channel_map[1].offset * 4" (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) * identifier) ))) )))) ;) (expression_statement "uVar6 = (undefined1)(uVar5 >> 8);" (assignment_expression "uVar6 = (undefined1)(uVar5 >> 8)" identifier = (call_expression "(undefined1)(uVar5 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar5 >> 8)" ( (binary_expression "uVar5 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == EVar19) {\n          puVar12[2] = (char)uVar5;\n          puVar12[3] = uVar6;\n        }\n        else {\n          puVar12[2] = uVar6;\n          puVar12[3] = (char)uVar5;\n        }" if (parenthesized_expression "(quantum_info->endian == EVar19)" ( (binary_expression "quantum_info->endian == EVar19" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          puVar12[2] = (char)uVar5;\n          puVar12[3] = uVar6;\n        }" { (expression_statement "puVar12[2] = (char)uVar5;" (assignment_expression "puVar12[2] = (char)uVar5" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar12[3] = uVar6;" (assignment_expression "puVar12[3] = uVar6" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          puVar12[2] = uVar6;\n          puVar12[3] = (char)uVar5;\n        }" else (compound_statement "{\n          puVar12[2] = uVar6;\n          puVar12[3] = (char)uVar5;\n        }" { (expression_statement "puVar12[2] = uVar6;" (assignment_expression "puVar12[2] = uVar6" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = (char)uVar5;" (assignment_expression "puVar12[3] = (char)uVar5" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "puVar12 = puVar12 + 4;" (assignment_expression "puVar12 = puVar12 + 4" identifier = (binary_expression "puVar12 + 4" identifier + number_literal)) ;) (expression_statement "uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33));" (assignment_expression "uVar5 = SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33))" identifier = (call_expression "SinglePrecisionToHalf\n                          ((float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33))" identifier (argument_list "((float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33))" ( (cast_expression "(float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33)" ( (binary_expression "(double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                                  dVar33" (cast_expression "(double)*(float *)(iVar26 + image->channel_map->offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar26 + image->channel_map->offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map->offset * 4)" ( (binary_expression "iVar26 + image->channel_map->offset * 4" identifier + (binary_expression "image->channel_map->offset * 4" (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) * number_literal)) ))))) * identifier) ))) )))) ;) (expression_statement "uVar6 = (undefined1)(uVar5 >> 8);" (assignment_expression "uVar6 = (undefined1)(uVar5 >> 8)" identifier = (call_expression "(undefined1)(uVar5 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar5 >> 8)" ( (binary_expression "uVar5 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }" if (parenthesized_expression "(quantum_info->endian == EVar19)" ( (binary_expression "quantum_info->endian == EVar19" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }" { (expression_statement "*puVar12 = (char)uVar5;" (assignment_expression "*puVar12 = (char)uVar5" (pointer_expression "*puVar12" * identifier) = (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar12[1] = uVar6;" (assignment_expression "puVar12[1] = uVar6" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }" else (compound_statement "{\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }" { (expression_statement "*puVar12 = uVar6;" (assignment_expression "*puVar12 = uVar6" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "puVar12[1] = (char)uVar5;" (assignment_expression "puVar12[1] = (char)uVar5" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "puVar12 = puVar12 + 2;" (assignment_expression "puVar12 = puVar12 + 2" identifier = (binary_expression "puVar12 + 2" identifier + number_literal)) ;) (if_statement "if (image->channel_map[4].traits == PVar21) {\n          fVar39 = (float)((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35);\n        }\n        else {\n          fVar39 = 0.0;\n        }" if (parenthesized_expression "(image->channel_map[4].traits == PVar21)" ( (binary_expression "image->channel_map[4].traits == PVar21" (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          fVar39 = (float)((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35);\n        }" { (expression_statement "fVar39 = (float)((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35);" (assignment_expression "fVar39 = (float)((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35)" identifier = (cast_expression "(float)((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35)" ( (binary_expression "(double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)) * dVar35" (cast_expression "(double)((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4))" ( (binary_expression "(float)uVar43 -\n                                   *(float *)(iVar26 + image->channel_map[4].offset * 4)" (cast_expression "(float)uVar43" ( (type_descriptor "float" primitive_type) ) identifier) - (pointer_expression "*(float *)(iVar26 + image->channel_map[4].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[4].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[4].offset * 4" identifier + (binary_expression "image->channel_map[4].offset * 4" (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) ))) * identifier) )))) ;) }) (else_clause "else {\n          fVar39 = 0.0;\n        }" else (compound_statement "{\n          fVar39 = 0.0;\n        }" { (expression_statement "fVar39 = 0.0;" (assignment_expression "fVar39 = 0.0" identifier = number_literal) ;) }))) (expression_statement "uVar5 = SinglePrecisionToHalf(fVar39);" (assignment_expression "uVar5 = SinglePrecisionToHalf(fVar39)" identifier = (call_expression "SinglePrecisionToHalf(fVar39)" identifier (argument_list "(fVar39)" ( identifier )))) ;) (expression_statement "uVar6 = (undefined1)(uVar5 >> 8);" (assignment_expression "uVar6 = (undefined1)(uVar5 >> 8)" identifier = (call_expression "(undefined1)(uVar5 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar5 >> 8)" ( (binary_expression "uVar5 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == EVar19) {\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }\n        else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }" if (parenthesized_expression "(quantum_info->endian == EVar19)" ( (binary_expression "quantum_info->endian == EVar19" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          *puVar12 = (char)uVar5;\n          puVar12[1] = uVar6;\n        }" { (expression_statement "*puVar12 = (char)uVar5;" (assignment_expression "*puVar12 = (char)uVar5" (pointer_expression "*puVar12" * identifier) = (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar12[1] = uVar6;" (assignment_expression "puVar12[1] = uVar6" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }" else (compound_statement "{\n          *puVar12 = uVar6;\n          puVar12[1] = (char)uVar5;\n        }" { (expression_statement "*puVar12 = uVar6;" (assignment_expression "*puVar12 = uVar6" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "puVar12[1] = (char)uVar5;" (assignment_expression "puVar12[1] = (char)uVar5" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = (cast_expression "(char)uVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (expression_statement "number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 2);" (assignment_expression "number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 2)" identifier = (call_expression "CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 2)" identifier (argument_list "(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 2)" ( (binary_expression "iVar26 + image->number_channels * 4" identifier + (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal)) , (binary_expression "puVar12 + quantum_info->pad + 2" (binary_expression "puVar12 + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal) )))) ;) }) while (parenthesized_expression "(puVar29 != q)" ( (binary_expression "puVar29 != q" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if ((int)q < 1) {\n      return;\n    }" if (parenthesized_expression "((int)q < 1)" ( (binary_expression "(int)q < 1" (cast_expression "(int)q" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "puVar29 = (uchar *)0x0;" (assignment_expression "puVar29 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar34 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar34 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (do_statement "do {\n      iVar26 = (int)(number_pixels >> 0x20);\n      puVar12 = (undefined1 *)number_pixels;\n      fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165b70;\nLAB_00165d84:\n        *puVar12 = uVar14;\n        puVar12[1] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d84;\nLAB_00165b70:\n        *puVar12 = uVar6;\n        puVar12[1] = uVar20;\n      }\n      fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165be4;\nLAB_00165d64:\n        puVar12[2] = uVar14;\n        puVar12[3] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d64;\nLAB_00165be4:\n        puVar12[2] = uVar6;\n        puVar12[3] = uVar20;\n      }\n      fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c5c;\nLAB_00165d44:\n        puVar12[4] = uVar14;\n        puVar12[5] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d44;\nLAB_00165c5c:\n        puVar12[4] = uVar6;\n        puVar12[5] = uVar20;\n      }\n      if ((image->channel_map[4].traits != BlendPixelTrait) ||\n         (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0)) {\n        uVar6 = 0;\n        uVar14 = 0;\nLAB_00165c80:\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c8c;\nLAB_00165d24:\n        puVar12[6] = uVar6;\n        puVar12[7] = uVar14;\n      }\n      else {\n        if (fVar39 <= fVar42) {\n          uVar6 = 0xff;\n          uVar14 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar35 = (double)fVar42 + dVar34;\n        if (dVar35 < dVar33) {\n          uVar41 = (undefined2)(int)dVar35;\n        }\n        else {\n          uVar41 = (undefined2)(int)(dVar35 - dVar33);\n        }\n        uVar14 = (undefined1)((ushort)uVar41 >> 8);\n        uVar6 = (undefined1)uVar41;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d24;\nLAB_00165c8c:\n        puVar12[6] = uVar14;\n        puVar12[7] = uVar6;\n      }\n      puVar29 = puVar29 + 1;\n      number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 8);\n      if (puVar29 == q) {\n        return;\n      }\n    } while( true );" do (compound_statement "{\n      iVar26 = (int)(number_pixels >> 0x20);\n      puVar12 = (undefined1 *)number_pixels;\n      fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165b70;\nLAB_00165d84:\n        *puVar12 = uVar14;\n        puVar12[1] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d84;\nLAB_00165b70:\n        *puVar12 = uVar6;\n        puVar12[1] = uVar20;\n      }\n      fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165be4;\nLAB_00165d64:\n        puVar12[2] = uVar14;\n        puVar12[3] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d64;\nLAB_00165be4:\n        puVar12[2] = uVar6;\n        puVar12[3] = uVar20;\n      }\n      fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n      if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c5c;\nLAB_00165d44:\n        puVar12[4] = uVar14;\n        puVar12[5] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d44;\nLAB_00165c5c:\n        puVar12[4] = uVar6;\n        puVar12[5] = uVar20;\n      }\n      if ((image->channel_map[4].traits != BlendPixelTrait) ||\n         (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0)) {\n        uVar6 = 0;\n        uVar14 = 0;\nLAB_00165c80:\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c8c;\nLAB_00165d24:\n        puVar12[6] = uVar6;\n        puVar12[7] = uVar14;\n      }\n      else {\n        if (fVar39 <= fVar42) {\n          uVar6 = 0xff;\n          uVar14 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar35 = (double)fVar42 + dVar34;\n        if (dVar35 < dVar33) {\n          uVar41 = (undefined2)(int)dVar35;\n        }\n        else {\n          uVar41 = (undefined2)(int)(dVar35 - dVar33);\n        }\n        uVar14 = (undefined1)((ushort)uVar41 >> 8);\n        uVar6 = (undefined1)uVar41;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d24;\nLAB_00165c8c:\n        puVar12[6] = uVar14;\n        puVar12[7] = uVar6;\n      }\n      puVar29 = puVar29 + 1;\n      number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 8);\n      if (puVar29 == q) {\n        return;\n      }\n    }" { (expression_statement "iVar26 = (int)(number_pixels >> 0x20);" (assignment_expression "iVar26 = (int)(number_pixels >> 0x20)" identifier = (cast_expression "(int)(number_pixels >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(number_pixels >> 0x20)" ( (binary_expression "number_pixels >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "puVar12 = (undefined1 *)number_pixels;" (assignment_expression "puVar12 = (undefined1 *)number_pixels" identifier = (cast_expression "(undefined1 *)number_pixels" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + image->channel_map[2].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[2].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[2].offset * 4" identifier + (binary_expression "image->channel_map[2].offset * 4" (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165b70;\nLAB_00165d84:\n        *puVar12 = uVar14;\n        puVar12[1] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d84;\nLAB_00165b70:\n        *puVar12 = uVar6;\n        puVar12[1] = uVar20;\n      }" if (parenthesized_expression "(fVar42 <= 0.0)" ( (binary_expression "fVar42 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165b70;\nLAB_00165d84:\n        *puVar12 = uVar14;\n        puVar12[1] = uVar16;\n      }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (quantum_info->endian != LSBEndian) goto LAB_00165b70;" 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_00165b70;" goto statement_identifier ;)) (labeled_statement "LAB_00165d84:\n        *puVar12 = uVar14;" statement_identifier : (expression_statement "*puVar12 = uVar14;" (assignment_expression "*puVar12 = uVar14" (pointer_expression "*puVar12" * identifier) = identifier) ;)) (expression_statement "puVar12[1] = uVar16;" (assignment_expression "puVar12[1] = uVar16" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d84;\nLAB_00165b70:\n        *puVar12 = uVar6;\n        puVar12[1] = uVar20;\n      }" else (compound_statement "{\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d84;\nLAB_00165b70:\n        *puVar12 = uVar6;\n        puVar12[1] = uVar20;\n      }" { (if_statement "if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }" if (parenthesized_expression "(fVar42 < fVar39)" ( (binary_expression "fVar42 < fVar39" identifier < identifier) )) (compound_statement "{\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }" { (expression_statement "dVar35 = (double)fVar42 + dVar34;" (assignment_expression "dVar35 = (double)fVar42 + dVar34" identifier = (binary_expression "(double)fVar42 + dVar34" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }" if (parenthesized_expression "(dVar33 <= dVar35)" ( (binary_expression "dVar33 <= dVar35" identifier <= identifier) )) (compound_statement "{\n            dVar35 = dVar35 - dVar33;\n          }" { (expression_statement "dVar35 = dVar35 - dVar33;" (assignment_expression "dVar35 = dVar35 - dVar33" identifier = (binary_expression "dVar35 - dVar33" identifier - identifier)) ;) })) (expression_statement "uVar6 = (undefined1)((uint)(int)dVar35 >> 8);" (assignment_expression "uVar6 = (undefined1)((uint)(int)dVar35 >> 8)" identifier = (call_expression "(undefined1)((uint)(int)dVar35 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)(int)dVar35 >> 8)" ( (binary_expression "(uint)(int)dVar35 >> 8" (cast_expression "(uint)(int)dVar35" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)dVar35" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) ;) (expression_statement "uVar20 = (undefined1)(int)dVar35;" (assignment_expression "uVar20 = (undefined1)(int)dVar35" identifier = (cast_expression "(undefined1)(int)dVar35" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar35" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }" else (compound_statement "{\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }" { (expression_statement "uVar20 = 0xff;" (assignment_expression "uVar20 = 0xff" identifier = number_literal) ;) (expression_statement "uVar6 = 0xff;" (assignment_expression "uVar6 = 0xff" identifier = number_literal) ;) }))) (expression_statement "uVar14 = uVar20;" (assignment_expression "uVar14 = uVar20" identifier = identifier) ;) (expression_statement "uVar16 = uVar6;" (assignment_expression "uVar16 = uVar6" identifier = identifier) ;) (if_statement "if (quantum_info->endian == LSBEndian) goto LAB_00165d84;" 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_00165d84;" goto statement_identifier ;)) (labeled_statement "LAB_00165b70:\n        *puVar12 = uVar6;" statement_identifier : (expression_statement "*puVar12 = uVar6;" (assignment_expression "*puVar12 = uVar6" (pointer_expression "*puVar12" * identifier) = identifier) ;)) (expression_statement "puVar12[1] = uVar20;" (assignment_expression "puVar12[1] = uVar20" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + image->channel_map[1].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[1].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[1].offset * 4" identifier + (binary_expression "image->channel_map[1].offset * 4" (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165be4;\nLAB_00165d64:\n        puVar12[2] = uVar14;\n        puVar12[3] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d64;\nLAB_00165be4:\n        puVar12[2] = uVar6;\n        puVar12[3] = uVar20;\n      }" if (parenthesized_expression "(fVar42 <= 0.0)" ( (binary_expression "fVar42 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165be4;\nLAB_00165d64:\n        puVar12[2] = uVar14;\n        puVar12[3] = uVar16;\n      }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (quantum_info->endian != LSBEndian) goto LAB_00165be4;" 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_00165be4;" goto statement_identifier ;)) (labeled_statement "LAB_00165d64:\n        puVar12[2] = uVar14;" statement_identifier : (expression_statement "puVar12[2] = uVar14;" (assignment_expression "puVar12[2] = uVar14" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar12[3] = uVar16;" (assignment_expression "puVar12[3] = uVar16" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d64;\nLAB_00165be4:\n        puVar12[2] = uVar6;\n        puVar12[3] = uVar20;\n      }" else (compound_statement "{\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d64;\nLAB_00165be4:\n        puVar12[2] = uVar6;\n        puVar12[3] = uVar20;\n      }" { (if_statement "if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }" if (parenthesized_expression "(fVar42 < fVar39)" ( (binary_expression "fVar42 < fVar39" identifier < identifier) )) (compound_statement "{\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }" { (expression_statement "dVar35 = (double)fVar42 + dVar34;" (assignment_expression "dVar35 = (double)fVar42 + dVar34" identifier = (binary_expression "(double)fVar42 + dVar34" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }" if (parenthesized_expression "(dVar33 <= dVar35)" ( (binary_expression "dVar33 <= dVar35" identifier <= identifier) )) (compound_statement "{\n            dVar35 = dVar35 - dVar33;\n          }" { (expression_statement "dVar35 = dVar35 - dVar33;" (assignment_expression "dVar35 = dVar35 - dVar33" identifier = (binary_expression "dVar35 - dVar33" identifier - identifier)) ;) })) (expression_statement "uVar6 = (undefined1)((uint)(int)dVar35 >> 8);" (assignment_expression "uVar6 = (undefined1)((uint)(int)dVar35 >> 8)" identifier = (call_expression "(undefined1)((uint)(int)dVar35 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)(int)dVar35 >> 8)" ( (binary_expression "(uint)(int)dVar35 >> 8" (cast_expression "(uint)(int)dVar35" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)dVar35" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) ;) (expression_statement "uVar20 = (undefined1)(int)dVar35;" (assignment_expression "uVar20 = (undefined1)(int)dVar35" identifier = (cast_expression "(undefined1)(int)dVar35" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar35" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }" else (compound_statement "{\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }" { (expression_statement "uVar20 = 0xff;" (assignment_expression "uVar20 = 0xff" identifier = number_literal) ;) (expression_statement "uVar6 = 0xff;" (assignment_expression "uVar6 = 0xff" identifier = number_literal) ;) }))) (expression_statement "uVar14 = uVar20;" (assignment_expression "uVar14 = uVar20" identifier = identifier) ;) (expression_statement "uVar16 = uVar6;" (assignment_expression "uVar16 = uVar6" identifier = identifier) ;) (if_statement "if (quantum_info->endian == LSBEndian) goto LAB_00165d64;" 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_00165d64;" goto statement_identifier ;)) (labeled_statement "LAB_00165be4:\n        puVar12[2] = uVar6;" statement_identifier : (expression_statement "puVar12[2] = uVar6;" (assignment_expression "puVar12[2] = uVar6" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar12[3] = uVar20;" (assignment_expression "puVar12[3] = uVar20" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + image->channel_map->offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map->offset * 4)" ( (binary_expression "iVar26 + image->channel_map->offset * 4" identifier + (binary_expression "image->channel_map->offset * 4" (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar42 <= 0.0) {\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c5c;\nLAB_00165d44:\n        puVar12[4] = uVar14;\n        puVar12[5] = uVar16;\n      }\n      else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d44;\nLAB_00165c5c:\n        puVar12[4] = uVar6;\n        puVar12[5] = uVar20;\n      }" if (parenthesized_expression "(fVar42 <= 0.0)" ( (binary_expression "fVar42 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        uVar20 = 0;\n        uVar6 = 0;\n        uVar14 = 0;\n        uVar16 = 0;\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c5c;\nLAB_00165d44:\n        puVar12[4] = uVar14;\n        puVar12[5] = uVar16;\n      }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (quantum_info->endian != LSBEndian) goto LAB_00165c5c;" 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_00165c5c;" goto statement_identifier ;)) (labeled_statement "LAB_00165d44:\n        puVar12[4] = uVar14;" statement_identifier : (expression_statement "puVar12[4] = uVar14;" (assignment_expression "puVar12[4] = uVar14" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar12[5] = uVar16;" (assignment_expression "puVar12[5] = uVar16" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d44;\nLAB_00165c5c:\n        puVar12[4] = uVar6;\n        puVar12[5] = uVar20;\n      }" else (compound_statement "{\n        if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }\n        uVar14 = uVar20;\n        uVar16 = uVar6;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d44;\nLAB_00165c5c:\n        puVar12[4] = uVar6;\n        puVar12[5] = uVar20;\n      }" { (if_statement "if (fVar42 < fVar39) {\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }\n        else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }" if (parenthesized_expression "(fVar42 < fVar39)" ( (binary_expression "fVar42 < fVar39" identifier < identifier) )) (compound_statement "{\n          dVar35 = (double)fVar42 + dVar34;\n          if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }\n          uVar6 = (undefined1)((uint)(int)dVar35 >> 8);\n          uVar20 = (undefined1)(int)dVar35;\n        }" { (expression_statement "dVar35 = (double)fVar42 + dVar34;" (assignment_expression "dVar35 = (double)fVar42 + dVar34" identifier = (binary_expression "(double)fVar42 + dVar34" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar33 <= dVar35) {\n            dVar35 = dVar35 - dVar33;\n          }" if (parenthesized_expression "(dVar33 <= dVar35)" ( (binary_expression "dVar33 <= dVar35" identifier <= identifier) )) (compound_statement "{\n            dVar35 = dVar35 - dVar33;\n          }" { (expression_statement "dVar35 = dVar35 - dVar33;" (assignment_expression "dVar35 = dVar35 - dVar33" identifier = (binary_expression "dVar35 - dVar33" identifier - identifier)) ;) })) (expression_statement "uVar6 = (undefined1)((uint)(int)dVar35 >> 8);" (assignment_expression "uVar6 = (undefined1)((uint)(int)dVar35 >> 8)" identifier = (call_expression "(undefined1)((uint)(int)dVar35 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)(int)dVar35 >> 8)" ( (binary_expression "(uint)(int)dVar35 >> 8" (cast_expression "(uint)(int)dVar35" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)dVar35" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) ;) (expression_statement "uVar20 = (undefined1)(int)dVar35;" (assignment_expression "uVar20 = (undefined1)(int)dVar35" identifier = (cast_expression "(undefined1)(int)dVar35" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar35" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }" else (compound_statement "{\n          uVar20 = 0xff;\n          uVar6 = 0xff;\n        }" { (expression_statement "uVar20 = 0xff;" (assignment_expression "uVar20 = 0xff" identifier = number_literal) ;) (expression_statement "uVar6 = 0xff;" (assignment_expression "uVar6 = 0xff" identifier = number_literal) ;) }))) (expression_statement "uVar14 = uVar20;" (assignment_expression "uVar14 = uVar20" identifier = identifier) ;) (expression_statement "uVar16 = uVar6;" (assignment_expression "uVar16 = uVar6" identifier = identifier) ;) (if_statement "if (quantum_info->endian == LSBEndian) goto LAB_00165d44;" 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_00165d44;" goto statement_identifier ;)) (labeled_statement "LAB_00165c5c:\n        puVar12[4] = uVar6;" statement_identifier : (expression_statement "puVar12[4] = uVar6;" (assignment_expression "puVar12[4] = uVar6" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar12[5] = uVar20;" (assignment_expression "puVar12[5] = uVar20" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((image->channel_map[4].traits != BlendPixelTrait) ||\n         (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0)) {\n        uVar6 = 0;\n        uVar14 = 0;\nLAB_00165c80:\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c8c;\nLAB_00165d24:\n        puVar12[6] = uVar6;\n        puVar12[7] = uVar14;\n      }\n      else {\n        if (fVar39 <= fVar42) {\n          uVar6 = 0xff;\n          uVar14 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar35 = (double)fVar42 + dVar34;\n        if (dVar35 < dVar33) {\n          uVar41 = (undefined2)(int)dVar35;\n        }\n        else {\n          uVar41 = (undefined2)(int)(dVar35 - dVar33);\n        }\n        uVar14 = (undefined1)((ushort)uVar41 >> 8);\n        uVar6 = (undefined1)uVar41;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d24;\nLAB_00165c8c:\n        puVar12[6] = uVar14;\n        puVar12[7] = uVar6;\n      }" if (parenthesized_expression "((image->channel_map[4].traits != BlendPixelTrait) ||\n         (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))" ( (binary_expression "(image->channel_map[4].traits != BlendPixelTrait) ||\n         (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 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 "(fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0)" ( (comma_expression "fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0" (assignment_expression "fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4)" identifier = (binary_expression "fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4)" identifier - (pointer_expression "*(float *)(iVar26 + image->channel_map[4].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[4].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[4].offset * 4" identifier + (binary_expression "image->channel_map[4].offset * 4" (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) )))))) , (binary_expression "fVar42 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n        uVar6 = 0;\n        uVar14 = 0;\nLAB_00165c80:\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c8c;\nLAB_00165d24:\n        puVar12[6] = uVar6;\n        puVar12[7] = uVar14;\n      }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00165c80:\n        if (quantum_info->endian != LSBEndian) goto LAB_00165c8c;" statement_identifier : (if_statement "if (quantum_info->endian != LSBEndian) goto LAB_00165c8c;" 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_00165c8c;" goto statement_identifier ;))) (labeled_statement "LAB_00165d24:\n        puVar12[6] = uVar6;" statement_identifier : (expression_statement "puVar12[6] = uVar6;" (assignment_expression "puVar12[6] = uVar6" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar12[7] = uVar14;" (assignment_expression "puVar12[7] = uVar14" (subscript_expression "puVar12[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if (fVar39 <= fVar42) {\n          uVar6 = 0xff;\n          uVar14 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar35 = (double)fVar42 + dVar34;\n        if (dVar35 < dVar33) {\n          uVar41 = (undefined2)(int)dVar35;\n        }\n        else {\n          uVar41 = (undefined2)(int)(dVar35 - dVar33);\n        }\n        uVar14 = (undefined1)((ushort)uVar41 >> 8);\n        uVar6 = (undefined1)uVar41;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d24;\nLAB_00165c8c:\n        puVar12[6] = uVar14;\n        puVar12[7] = uVar6;\n      }" else (compound_statement "{\n        if (fVar39 <= fVar42) {\n          uVar6 = 0xff;\n          uVar14 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar35 = (double)fVar42 + dVar34;\n        if (dVar35 < dVar33) {\n          uVar41 = (undefined2)(int)dVar35;\n        }\n        else {\n          uVar41 = (undefined2)(int)(dVar35 - dVar33);\n        }\n        uVar14 = (undefined1)((ushort)uVar41 >> 8);\n        uVar6 = (undefined1)uVar41;\n        if (quantum_info->endian == LSBEndian) goto LAB_00165d24;\nLAB_00165c8c:\n        puVar12[6] = uVar14;\n        puVar12[7] = uVar6;\n      }" { (if_statement "if (fVar39 <= fVar42) {\n          uVar6 = 0xff;\n          uVar14 = 0xff;\n          goto LAB_00165c80;\n        }" if (parenthesized_expression "(fVar39 <= fVar42)" ( (binary_expression "fVar39 <= fVar42" identifier <= identifier) )) (compound_statement "{\n          uVar6 = 0xff;\n          uVar14 = 0xff;\n          goto LAB_00165c80;\n        }" { (expression_statement "uVar6 = 0xff;" (assignment_expression "uVar6 = 0xff" identifier = number_literal) ;) (expression_statement "uVar14 = 0xff;" (assignment_expression "uVar14 = 0xff" identifier = number_literal) ;) (goto_statement "goto LAB_00165c80;" goto statement_identifier ;) })) (expression_statement "dVar35 = (double)fVar42 + dVar34;" (assignment_expression "dVar35 = (double)fVar42 + dVar34" identifier = (binary_expression "(double)fVar42 + dVar34" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar35 < dVar33) {\n          uVar41 = (undefined2)(int)dVar35;\n        }\n        else {\n          uVar41 = (undefined2)(int)(dVar35 - dVar33);\n        }" if (parenthesized_expression "(dVar35 < dVar33)" ( (binary_expression "dVar35 < dVar33" identifier < identifier) )) (compound_statement "{\n          uVar41 = (undefined2)(int)dVar35;\n        }" { (expression_statement "uVar41 = (undefined2)(int)dVar35;" (assignment_expression "uVar41 = (undefined2)(int)dVar35" identifier = (cast_expression "(undefined2)(int)dVar35" ( (type_descriptor "undefined2" type_identifier) ) (cast_expression "(int)dVar35" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          uVar41 = (undefined2)(int)(dVar35 - dVar33);\n        }" else (compound_statement "{\n          uVar41 = (undefined2)(int)(dVar35 - dVar33);\n        }" { (expression_statement "uVar41 = (undefined2)(int)(dVar35 - dVar33);" (assignment_expression "uVar41 = (undefined2)(int)(dVar35 - dVar33)" identifier = (call_expression "(undefined2)(int)(dVar35 - dVar33)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar35 - dVar33)" ( (binary_expression "dVar35 - dVar33" identifier - identifier) )))) ;) }))) (expression_statement "uVar14 = (undefined1)((ushort)uVar41 >> 8);" (assignment_expression "uVar14 = (undefined1)((ushort)uVar41 >> 8)" identifier = (call_expression "(undefined1)((ushort)uVar41 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ushort)uVar41 >> 8)" ( (binary_expression "(ushort)uVar41 >> 8" (cast_expression "(ushort)uVar41" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)uVar41;" (assignment_expression "uVar6 = (undefined1)uVar41" identifier = (cast_expression "(undefined1)uVar41" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (quantum_info->endian == LSBEndian) goto LAB_00165d24;" 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_00165d24;" goto statement_identifier ;)) (labeled_statement "LAB_00165c8c:\n        puVar12[6] = uVar14;" statement_identifier : (expression_statement "puVar12[6] = uVar14;" (assignment_expression "puVar12[6] = uVar14" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar12[7] = uVar6;" (assignment_expression "puVar12[7] = uVar6" (subscript_expression "puVar12[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (expression_statement "number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 8);" (assignment_expression "number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 8)" identifier = (call_expression "CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 8)" identifier (argument_list "(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 8)" ( (binary_expression "iVar26 + image->number_channels * 4" identifier + (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal)) , (binary_expression "puVar12 + quantum_info->pad + 8" (binary_expression "puVar12 + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal) )))) ;) (if_statement "if (puVar29 == q) {\n        return;\n      }" if (parenthesized_expression "(puVar29 == q)" ( (binary_expression "puVar29 == q" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (uVar25 < 0x11) {\n    if (uVar25 == 8) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        *puVar12 = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[1] = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[2] = uVar6;\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[3] = uVar6;\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 4);\n      } while (puVar29 != q);\n      return;\n    }\n    if (uVar25 == 10) {\n      if (quantum_info->pack == MagickFalse) {\n        if ((int)q < 1) {\n          return;\n        }\n        iVar26 = 0;\n        uVar25 = 0;\n        dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar43 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar34 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar32 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          iVar30 = 0;\n          dVar48 = *(double *)(puVar4 + -0x7538);\n          dVar50 = *(double *)(puVar2 + 0x1418);\n          dVar46 = *(double *)(puVar2 + 0x1a58);\n          dVar45 = *(double *)(puVar2 + 0x1a60);\n          dVar49 = *(double *)(puVar2 + 0x1400);\n          dVar47 = dVar50;\n          do {\n            pPVar8 = image->channel_map;\n            if (iVar30 == 2) {\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }\n            else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar9 = (uint)(iVar30 + iVar26) % 3;\n            if (uVar9 == 1) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }\n            iVar30 = iVar30 + 1;\n          } while (iVar30 != 4);\n          iVar26 = iVar26 + 4;\n          number_pixels = CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (iVar26 == (int)q << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (quantum_info->quantum == 0x20) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar25 = 10;\n        dVar33 = dVar45;\n        dVar34 = dVar46;\n        dVar35 = dVar48;\n        dVar36 = dVar49;\n        dVar37 = dVar48;\n        dVar47 = dVar46;\n        while( true ) {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n          if (NAN(fVar42)) {\n            uVar9 = 0;\n          }\n          else {\n            uVar9 = 0;\n            if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }\n          }\n          uVar10 = (quantum_info->state).bits;\n          if (uVar10 == 0) {\n            uVar10 = 0x20;\n            (quantum_info->state).bits = 0x20;\n          }\n          if (0 < (int)uVar25) {\n            bVar1 = uVar10 < uVar25;\n            uVar17 = uVar25;\n            puVar13 = puVar12;\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar17);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar12 = puVar13;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          if ((pPVar8[4].traits != BlendPixelTrait) ||\n             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          uVar10 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            while( true ) {\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (puVar29 == q) break;\n          uVar25 = quantum_info->depth;\n        }\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar25 = 10;\n      dVar33 = dVar45;\n      dVar34 = dVar46;\n      dVar35 = dVar48;\n      dVar36 = dVar49;\n      dVar37 = dVar48;\n      dVar47 = dVar46;\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        pbVar31 = (byte *)number_pixels;\n        pPVar8 = image->channel_map;\n        fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n        if (NAN(fVar42)) {\n          uVar9 = 0;\n        }\n        else {\n          uVar9 = 0;\n          if (0.0 < fVar42) {\n            dVar50 = ((double)fVar42 * dVar35) / dVar34;\n            if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n        }\n        sVar27 = (quantum_info->state).bits;\n        if (sVar27 == 0) {\n          sVar27 = 8;\n          (quantum_info->state).bits = 8;\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166458;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_00166434:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cbc:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166550;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016652c:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cb4:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          uVar10 = 0;\n          uVar9 = uVar25;\n          if (pPVar8[4].traits == BlendPixelTrait) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016662c:\n          pPVar8 = image->channel_map;\n          uVar25 = quantum_info->depth;\n          if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n            if (fVar42 <= 0.0) goto LAB_00166640;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar10 = 0;\n          }\n          uVar9 = uVar25;\n          if (sVar27 == 0) {\n            (quantum_info->state).bits = 8;\n          }\n        }\n        while (0 < (int)uVar9) {\n          uVar11 = (quantum_info->state).bits;\n          uVar17 = uVar11;\n          if (uVar25 <= uVar11) {\n            uVar17 = uVar25;\n          }\n          uVar9 = uVar25 - uVar17;\n          uVar25 = uVar9;\n          if ((int)uVar9 < 0) {\n            uVar25 = 0;\n          }\n          if (uVar11 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar28 = uVar10 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar28 = 0;\n          }\n          uVar11 = uVar11 - uVar17;\n          (quantum_info->state).bits = uVar11;\n          bVar15 = (byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f));\n          if ((uVar11 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar11 == 0) {\n            pbVar31 = pbVar31 + 1;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels = CONCAT44(iVar26 + image->number_channels * 4,pbVar31 + quantum_info->pad);\n        if (puVar29 == q) {\n          return;\n        }\n        uVar25 = quantum_info->depth;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar25 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar25 == 0x20) {\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *puVar12 = uVar6;\n            puVar12[1] = uVar14;\n            puVar12[2] = uVar16;\n            puVar12[3] = SUB41(fVar42,0);\n          }\n          else {\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[4] = uVar6;\n            puVar12[5] = uVar14;\n            puVar12[6] = uVar16;\n            puVar12[7] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[8] = uVar6;\n            puVar12[9] = uVar14;\n            puVar12[10] = uVar16;\n            puVar12[0xb] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n          }\n          else {\n            dVar33 = 0.0;\n          }\n          fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[0xc] = uVar6;\n            puVar12[0xd] = uVar14;\n            puVar12[0xe] = uVar16;\n            puVar12[0xf] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels =\n               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        } while (puVar29 != q);\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165ecc;\nLAB_001660ec:\n          *puVar12 = uVar16;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660ec;\nLAB_00165ecc:\n          *puVar12 = uVar23;\n          puVar12[1] = uVar6;\n          puVar12[2] = uVar14;\n          puVar12[3] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165f54;\nLAB_0016611c:\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar20;\n          puVar12[6] = uVar22;\n          puVar12[7] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_0016611c;\nLAB_00165f54:\n          puVar12[4] = uVar23;\n          puVar12[5] = uVar6;\n          puVar12[6] = uVar14;\n          puVar12[7] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165fe8;\nLAB_001660b8:\n          puVar12[8] = uVar16;\n          puVar12[9] = uVar20;\n          puVar12[10] = uVar22;\n          puVar12[0xb] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660b8;\nLAB_00165fe8:\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar6;\n          puVar12[10] = uVar14;\n          puVar12[0xb] = uVar7;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar16 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar20 = 0;\nLAB_00165e14:\n          if (quantum_info->endian != LSBEndian) goto LAB_00165e24;\nLAB_00166084:\n          puVar12[0xc] = uVar16;\n          puVar12[0xd] = uVar14;\n          puVar12[0xe] = uVar6;\n          puVar12[0xf] = uVar20;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          if (dVar33 <= dVar37) {\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar37 = dVar37 + dVar36;\n          if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n            uVar25 = (uint)dVar37;\n          }\n          else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          uVar20 = (undefined1)(uVar25 >> 0x18);\n          uVar6 = (undefined1)(uVar25 >> 0x10);\n          uVar14 = (undefined1)(uVar25 >> 8);\n          uVar16 = (undefined1)uVar25;\n          if (quantum_info->endian == LSBEndian) goto LAB_00166084;\nLAB_00165e24:\n          puVar12[0xc] = uVar20;\n          puVar12[0xd] = uVar6;\n          puVar12[0xe] = uVar14;\n          puVar12[0xf] = uVar16;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        if (puVar29 == q) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar25 != 0x40) goto LAB_00165538;\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x20);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          *puVar12 = uVar14;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar6;\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar24;\n          puVar12[6] = uVar7;\n          puVar12[7] = SUB81(dVar33,0);\n        }\n        else {\n          *puVar12 = SUB81(dVar33,0);\n          puVar12[1] = uVar7;\n          puVar12[2] = uVar24;\n          puVar12[3] = uVar16;\n          puVar12[4] = uVar6;\n          puVar12[5] = uVar22;\n          puVar12[6] = uVar20;\n          puVar12[7] = uVar14;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[8] = uVar6;\n          puVar12[9] = uVar16;\n          puVar12[10] = uVar20;\n          puVar12[0xb] = uVar22;\n          puVar12[0xc] = uVar14;\n          puVar12[0xd] = uVar24;\n          puVar12[0xe] = uVar7;\n          puVar12[0xf] = uVar23;\n        }\n        else {\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar7;\n          puVar12[10] = uVar24;\n          puVar12[0xb] = uVar14;\n          puVar12[0xc] = uVar22;\n          puVar12[0xd] = uVar20;\n          puVar12[0xe] = uVar16;\n          puVar12[0xf] = uVar6;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x10] = uVar6;\n          puVar12[0x11] = uVar16;\n          puVar12[0x12] = uVar20;\n          puVar12[0x13] = uVar22;\n          puVar12[0x14] = uVar14;\n          puVar12[0x15] = uVar24;\n          puVar12[0x16] = uVar7;\n          puVar12[0x17] = uVar23;\n        }\n        else {\n          puVar12[0x10] = uVar23;\n          puVar12[0x11] = uVar7;\n          puVar12[0x12] = uVar24;\n          puVar12[0x13] = uVar14;\n          puVar12[0x14] = uVar22;\n          puVar12[0x15] = uVar20;\n          puVar12[0x16] = uVar16;\n          puVar12[0x17] = uVar6;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n        }\n        else {\n          dVar33 = 0.0;\n        }\n        dVar33 = dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x18] = uVar6;\n          puVar12[0x19] = uVar16;\n          puVar12[0x1a] = uVar20;\n          puVar12[0x1b] = uVar22;\n          puVar12[0x1c] = uVar14;\n          puVar12[0x1d] = uVar24;\n          puVar12[0x1e] = uVar7;\n          puVar12[0x1f] = uVar23;\n        }\n        else {\n          puVar12[0x18] = uVar23;\n          puVar12[0x19] = uVar7;\n          puVar12[0x1a] = uVar24;\n          puVar12[0x1b] = uVar14;\n          puVar12[0x1c] = uVar22;\n          puVar12[0x1d] = uVar20;\n          puVar12[0x1e] = uVar16;\n          puVar12[0x1f] = uVar6;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20);\n      } while (puVar29 != q);\n      return;\n    }\n  }" if (parenthesized_expression "(uVar25 < 0x11)" ( (binary_expression "uVar25 < 0x11" identifier < number_literal) )) (compound_statement "{\n    if (uVar25 == 8) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        *puVar12 = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[1] = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[2] = uVar6;\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[3] = uVar6;\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 4);\n      } while (puVar29 != q);\n      return;\n    }\n    if (uVar25 == 10) {\n      if (quantum_info->pack == MagickFalse) {\n        if ((int)q < 1) {\n          return;\n        }\n        iVar26 = 0;\n        uVar25 = 0;\n        dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar43 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar34 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar32 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          iVar30 = 0;\n          dVar48 = *(double *)(puVar4 + -0x7538);\n          dVar50 = *(double *)(puVar2 + 0x1418);\n          dVar46 = *(double *)(puVar2 + 0x1a58);\n          dVar45 = *(double *)(puVar2 + 0x1a60);\n          dVar49 = *(double *)(puVar2 + 0x1400);\n          dVar47 = dVar50;\n          do {\n            pPVar8 = image->channel_map;\n            if (iVar30 == 2) {\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }\n            else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar9 = (uint)(iVar30 + iVar26) % 3;\n            if (uVar9 == 1) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }\n            iVar30 = iVar30 + 1;\n          } while (iVar30 != 4);\n          iVar26 = iVar26 + 4;\n          number_pixels = CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (iVar26 == (int)q << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (quantum_info->quantum == 0x20) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar25 = 10;\n        dVar33 = dVar45;\n        dVar34 = dVar46;\n        dVar35 = dVar48;\n        dVar36 = dVar49;\n        dVar37 = dVar48;\n        dVar47 = dVar46;\n        while( true ) {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n          if (NAN(fVar42)) {\n            uVar9 = 0;\n          }\n          else {\n            uVar9 = 0;\n            if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }\n          }\n          uVar10 = (quantum_info->state).bits;\n          if (uVar10 == 0) {\n            uVar10 = 0x20;\n            (quantum_info->state).bits = 0x20;\n          }\n          if (0 < (int)uVar25) {\n            bVar1 = uVar10 < uVar25;\n            uVar17 = uVar25;\n            puVar13 = puVar12;\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar17);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar12 = puVar13;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          if ((pPVar8[4].traits != BlendPixelTrait) ||\n             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          uVar10 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            while( true ) {\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (puVar29 == q) break;\n          uVar25 = quantum_info->depth;\n        }\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar25 = 10;\n      dVar33 = dVar45;\n      dVar34 = dVar46;\n      dVar35 = dVar48;\n      dVar36 = dVar49;\n      dVar37 = dVar48;\n      dVar47 = dVar46;\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        pbVar31 = (byte *)number_pixels;\n        pPVar8 = image->channel_map;\n        fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n        if (NAN(fVar42)) {\n          uVar9 = 0;\n        }\n        else {\n          uVar9 = 0;\n          if (0.0 < fVar42) {\n            dVar50 = ((double)fVar42 * dVar35) / dVar34;\n            if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n        }\n        sVar27 = (quantum_info->state).bits;\n        if (sVar27 == 0) {\n          sVar27 = 8;\n          (quantum_info->state).bits = 8;\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166458;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_00166434:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cbc:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166550;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016652c:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cb4:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          uVar10 = 0;\n          uVar9 = uVar25;\n          if (pPVar8[4].traits == BlendPixelTrait) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016662c:\n          pPVar8 = image->channel_map;\n          uVar25 = quantum_info->depth;\n          if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n            if (fVar42 <= 0.0) goto LAB_00166640;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar10 = 0;\n          }\n          uVar9 = uVar25;\n          if (sVar27 == 0) {\n            (quantum_info->state).bits = 8;\n          }\n        }\n        while (0 < (int)uVar9) {\n          uVar11 = (quantum_info->state).bits;\n          uVar17 = uVar11;\n          if (uVar25 <= uVar11) {\n            uVar17 = uVar25;\n          }\n          uVar9 = uVar25 - uVar17;\n          uVar25 = uVar9;\n          if ((int)uVar9 < 0) {\n            uVar25 = 0;\n          }\n          if (uVar11 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar28 = uVar10 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar28 = 0;\n          }\n          uVar11 = uVar11 - uVar17;\n          (quantum_info->state).bits = uVar11;\n          bVar15 = (byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f));\n          if ((uVar11 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar11 == 0) {\n            pbVar31 = pbVar31 + 1;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels = CONCAT44(iVar26 + image->number_channels * 4,pbVar31 + quantum_info->pad);\n        if (puVar29 == q) {\n          return;\n        }\n        uVar25 = quantum_info->depth;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar25 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }" { (if_statement "if (uVar25 == 8) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        *puVar12 = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[1] = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[2] = uVar6;\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[3] = uVar6;\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 4);\n      } while (puVar29 != q);\n      return;\n    }" if (parenthesized_expression "(uVar25 == 8)" ( (binary_expression "uVar25 == 8" identifier == number_literal) )) (compound_statement "{\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        *puVar12 = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[1] = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[2] = uVar6;\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[3] = uVar6;\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 4);\n      } while (puVar29 != q);\n      return;\n    }" { (if_statement "if ((int)q < 1) {\n        return;\n      }" if (parenthesized_expression "((int)q < 1)" ( (binary_expression "(int)q < 1" (cast_expression "(int)q" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "puVar29 = (uchar *)0x0;" (assignment_expression "puVar29 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);" (assignment_expression "dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);" (assignment_expression "dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8" identifier + number_literal) ))))) ;) (expression_statement "dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        *puVar12 = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[1] = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[2] = uVar6;\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[3] = uVar6;\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 4);\n      } while (puVar29 != q);" do (compound_statement "{\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        *puVar12 = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[1] = uVar6;\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[2] = uVar6;\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }\n        puVar12[3] = uVar6;\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 4);\n      }" { (expression_statement "iVar26 = (int)(number_pixels >> 0x20);" (assignment_expression "iVar26 = (int)(number_pixels >> 0x20)" identifier = (cast_expression "(int)(number_pixels >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(number_pixels >> 0x20)" ( (binary_expression "number_pixels >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "puVar12 = (undefined1 *)number_pixels;" (assignment_expression "puVar12 = (undefined1 *)number_pixels" identifier = (cast_expression "(undefined1 *)number_pixels" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + image->channel_map[2].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[2].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[2].offset * 4" identifier + (binary_expression "image->channel_map[2].offset * 4" (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }" if (parenthesized_expression "(fVar42 <= 0.0)" ( (binary_expression "fVar42 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          uVar6 = 0;\n        }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }" else (compound_statement "{\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }" { (expression_statement "dVar37 = (double)fVar42 / dVar34;" (assignment_expression "dVar37 = (double)fVar42 / dVar34" identifier = (binary_expression "(double)fVar42 / dVar34" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }" if (parenthesized_expression "(dVar37 < dVar33)" ( (binary_expression "dVar37 < dVar33" identifier < identifier) )) (compound_statement "{\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }" { (expression_statement "dVar37 = dVar37 + dVar36;" (assignment_expression "dVar37 = dVar37 + dVar36" identifier = (binary_expression "dVar37 + dVar36" identifier + identifier)) ;) (if_statement "if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }" if (parenthesized_expression "(dVar37 < dVar35)" ( (binary_expression "dVar37 < dVar35" identifier < identifier) )) (compound_statement "{\n              uVar6 = (undefined1)(int)dVar37;\n            }" { (expression_statement "uVar6 = (undefined1)(int)dVar37;" (assignment_expression "uVar6 = (undefined1)(int)dVar37" identifier = (cast_expression "(undefined1)(int)dVar37" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }" else (compound_statement "{\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }" { (expression_statement "uVar6 = (undefined1)(int)(dVar37 - dVar35);" (assignment_expression "uVar6 = (undefined1)(int)(dVar37 - dVar35)" identifier = (call_expression "(undefined1)(int)(dVar37 - dVar35)" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar37 - dVar35)" ( (binary_expression "dVar37 - dVar35" identifier - identifier) )))) ;) }))) }) (else_clause "else {\n            uVar6 = 0xff;\n          }" else (compound_statement "{\n            uVar6 = 0xff;\n          }" { (expression_statement "uVar6 = 0xff;" (assignment_expression "uVar6 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "*puVar12 = uVar6;" (assignment_expression "*puVar12 = uVar6" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + image->channel_map[1].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[1].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[1].offset * 4" identifier + (binary_expression "image->channel_map[1].offset * 4" (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }" if (parenthesized_expression "(fVar42 <= 0.0)" ( (binary_expression "fVar42 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          uVar6 = 0;\n        }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }" else (compound_statement "{\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }" { (expression_statement "dVar37 = (double)fVar42 / dVar34;" (assignment_expression "dVar37 = (double)fVar42 / dVar34" identifier = (binary_expression "(double)fVar42 / dVar34" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }" if (parenthesized_expression "(dVar37 < dVar33)" ( (binary_expression "dVar37 < dVar33" identifier < identifier) )) (compound_statement "{\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }" { (expression_statement "dVar37 = dVar37 + dVar36;" (assignment_expression "dVar37 = dVar37 + dVar36" identifier = (binary_expression "dVar37 + dVar36" identifier + identifier)) ;) (if_statement "if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }" if (parenthesized_expression "(dVar37 < dVar35)" ( (binary_expression "dVar37 < dVar35" identifier < identifier) )) (compound_statement "{\n              uVar6 = (undefined1)(int)dVar37;\n            }" { (expression_statement "uVar6 = (undefined1)(int)dVar37;" (assignment_expression "uVar6 = (undefined1)(int)dVar37" identifier = (cast_expression "(undefined1)(int)dVar37" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }" else (compound_statement "{\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }" { (expression_statement "uVar6 = (undefined1)(int)(dVar37 - dVar35);" (assignment_expression "uVar6 = (undefined1)(int)(dVar37 - dVar35)" identifier = (call_expression "(undefined1)(int)(dVar37 - dVar35)" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar37 - dVar35)" ( (binary_expression "dVar37 - dVar35" identifier - identifier) )))) ;) }))) }) (else_clause "else {\n            uVar6 = 0xff;\n          }" else (compound_statement "{\n            uVar6 = 0xff;\n          }" { (expression_statement "uVar6 = 0xff;" (assignment_expression "uVar6 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "puVar12[1] = uVar6;" (assignment_expression "puVar12[1] = uVar6" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + image->channel_map->offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map->offset * 4)" ( (binary_expression "iVar26 + image->channel_map->offset * 4" identifier + (binary_expression "image->channel_map->offset * 4" (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar42 <= 0.0) {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }" if (parenthesized_expression "(fVar42 <= 0.0)" ( (binary_expression "fVar42 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          uVar6 = 0;\n        }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }" else (compound_statement "{\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }" { (expression_statement "dVar37 = (double)fVar42 / dVar34;" (assignment_expression "dVar37 = (double)fVar42 / dVar34" identifier = (binary_expression "(double)fVar42 / dVar34" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }" if (parenthesized_expression "(dVar37 < dVar33)" ( (binary_expression "dVar37 < dVar33" identifier < identifier) )) (compound_statement "{\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }\n          }" { (expression_statement "dVar37 = dVar37 + dVar36;" (assignment_expression "dVar37 = dVar37 + dVar36" identifier = (binary_expression "dVar37 + dVar36" identifier + identifier)) ;) (if_statement "if (dVar37 < dVar35) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }" if (parenthesized_expression "(dVar37 < dVar35)" ( (binary_expression "dVar37 < dVar35" identifier < identifier) )) (compound_statement "{\n              uVar6 = (undefined1)(int)dVar37;\n            }" { (expression_statement "uVar6 = (undefined1)(int)dVar37;" (assignment_expression "uVar6 = (undefined1)(int)dVar37" identifier = (cast_expression "(undefined1)(int)dVar37" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }" else (compound_statement "{\n              uVar6 = (undefined1)(int)(dVar37 - dVar35);\n            }" { (expression_statement "uVar6 = (undefined1)(int)(dVar37 - dVar35);" (assignment_expression "uVar6 = (undefined1)(int)(dVar37 - dVar35)" identifier = (call_expression "(undefined1)(int)(dVar37 - dVar35)" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar37 - dVar35)" ( (binary_expression "dVar37 - dVar35" identifier - identifier) )))) ;) }))) }) (else_clause "else {\n            uVar6 = 0xff;\n          }" else (compound_statement "{\n            uVar6 = 0xff;\n          }" { (expression_statement "uVar6 = 0xff;" (assignment_expression "uVar6 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "puVar12[2] = uVar6;" (assignment_expression "puVar12[2] = uVar6" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar6 = 0;\n        }\n        else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }" if (parenthesized_expression "((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))" ( (binary_expression "(image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 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 "(fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0)" ( (comma_expression "fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0" (assignment_expression "fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4)" identifier = (binary_expression "fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4)" identifier - (pointer_expression "*(float *)(iVar26 + image->channel_map[4].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[4].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[4].offset * 4" identifier + (binary_expression "image->channel_map[4].offset * 4" (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) )))))) , (binary_expression "fVar42 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n          uVar6 = 0;\n        }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }" else (compound_statement "{\n          dVar37 = (double)fVar42 / dVar34;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }\n        }" { (expression_statement "dVar37 = (double)fVar42 / dVar34;" (assignment_expression "dVar37 = (double)fVar42 / dVar34" identifier = (binary_expression "(double)fVar42 / dVar34" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            uVar6 = 0xff;\n          }" if (parenthesized_expression "(dVar37 < dVar33)" ( (binary_expression "dVar37 < dVar33" identifier < identifier) )) (compound_statement "{\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }\n          }" { (expression_statement "dVar37 = dVar37 + dVar36;" (assignment_expression "dVar37 = dVar37 + dVar36" identifier = (binary_expression "dVar37 + dVar36" identifier + identifier)) ;) (if_statement "if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n              uVar6 = (undefined1)(int)dVar37;\n            }\n            else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }" if (parenthesized_expression "(dVar37 < *(double *)(puVar2 + 0x1410))" ( (binary_expression "dVar37 < *(double *)(puVar2 + 0x1410)" identifier < (pointer_expression "*(double *)(puVar2 + 0x1410)" * (cast_expression "(double *)(puVar2 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1410)" ( (binary_expression "puVar2 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n              uVar6 = (undefined1)(int)dVar37;\n            }" { (expression_statement "uVar6 = (undefined1)(int)dVar37;" (assignment_expression "uVar6 = (undefined1)(int)dVar37" identifier = (cast_expression "(undefined1)(int)dVar37" ( (type_descriptor "undefined1" type_identifier) ) (cast_expression "(int)dVar37" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }" else (compound_statement "{\n              uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));\n            }" { (expression_statement "uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410));" (assignment_expression "uVar6 = (undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410))" identifier = (call_expression "(undefined1)(int)(dVar37 - *(double *)(puVar2 + 0x1410))" (call_expression "(undefined1)(int)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar37 - *(double *)(puVar2 + 0x1410))" ( (binary_expression "dVar37 - *(double *)(puVar2 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar2 + 0x1410)" * (cast_expression "(double *)(puVar2 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1410)" ( (binary_expression "puVar2 + 0x1410" identifier + number_literal) ))))) )))) ;) }))) }) (else_clause "else {\n            uVar6 = 0xff;\n          }" else (compound_statement "{\n            uVar6 = 0xff;\n          }" { (expression_statement "uVar6 = 0xff;" (assignment_expression "uVar6 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "puVar12[3] = uVar6;" (assignment_expression "puVar12[3] = uVar6" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (expression_statement "number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 4);" (assignment_expression "number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 4)" identifier = (call_expression "CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 4)" identifier (argument_list "(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 4)" ( (binary_expression "iVar26 + image->number_channels * 4" identifier + (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal)) , (binary_expression "puVar12 + quantum_info->pad + 4" (binary_expression "puVar12 + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal) )))) ;) }) while (parenthesized_expression "(puVar29 != q)" ( (binary_expression "puVar29 != q" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar25 == 10) {\n      if (quantum_info->pack == MagickFalse) {\n        if ((int)q < 1) {\n          return;\n        }\n        iVar26 = 0;\n        uVar25 = 0;\n        dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar43 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar34 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar32 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          iVar30 = 0;\n          dVar48 = *(double *)(puVar4 + -0x7538);\n          dVar50 = *(double *)(puVar2 + 0x1418);\n          dVar46 = *(double *)(puVar2 + 0x1a58);\n          dVar45 = *(double *)(puVar2 + 0x1a60);\n          dVar49 = *(double *)(puVar2 + 0x1400);\n          dVar47 = dVar50;\n          do {\n            pPVar8 = image->channel_map;\n            if (iVar30 == 2) {\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }\n            else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar9 = (uint)(iVar30 + iVar26) % 3;\n            if (uVar9 == 1) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }\n            iVar30 = iVar30 + 1;\n          } while (iVar30 != 4);\n          iVar26 = iVar26 + 4;\n          number_pixels = CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (iVar26 == (int)q << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (quantum_info->quantum == 0x20) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar25 = 10;\n        dVar33 = dVar45;\n        dVar34 = dVar46;\n        dVar35 = dVar48;\n        dVar36 = dVar49;\n        dVar37 = dVar48;\n        dVar47 = dVar46;\n        while( true ) {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n          if (NAN(fVar42)) {\n            uVar9 = 0;\n          }\n          else {\n            uVar9 = 0;\n            if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }\n          }\n          uVar10 = (quantum_info->state).bits;\n          if (uVar10 == 0) {\n            uVar10 = 0x20;\n            (quantum_info->state).bits = 0x20;\n          }\n          if (0 < (int)uVar25) {\n            bVar1 = uVar10 < uVar25;\n            uVar17 = uVar25;\n            puVar13 = puVar12;\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar17);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar12 = puVar13;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          if ((pPVar8[4].traits != BlendPixelTrait) ||\n             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          uVar10 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            while( true ) {\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (puVar29 == q) break;\n          uVar25 = quantum_info->depth;\n        }\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar25 = 10;\n      dVar33 = dVar45;\n      dVar34 = dVar46;\n      dVar35 = dVar48;\n      dVar36 = dVar49;\n      dVar37 = dVar48;\n      dVar47 = dVar46;\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        pbVar31 = (byte *)number_pixels;\n        pPVar8 = image->channel_map;\n        fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n        if (NAN(fVar42)) {\n          uVar9 = 0;\n        }\n        else {\n          uVar9 = 0;\n          if (0.0 < fVar42) {\n            dVar50 = ((double)fVar42 * dVar35) / dVar34;\n            if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n        }\n        sVar27 = (quantum_info->state).bits;\n        if (sVar27 == 0) {\n          sVar27 = 8;\n          (quantum_info->state).bits = 8;\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166458;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_00166434:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cbc:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166550;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016652c:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cb4:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          uVar10 = 0;\n          uVar9 = uVar25;\n          if (pPVar8[4].traits == BlendPixelTrait) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016662c:\n          pPVar8 = image->channel_map;\n          uVar25 = quantum_info->depth;\n          if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n            if (fVar42 <= 0.0) goto LAB_00166640;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar10 = 0;\n          }\n          uVar9 = uVar25;\n          if (sVar27 == 0) {\n            (quantum_info->state).bits = 8;\n          }\n        }\n        while (0 < (int)uVar9) {\n          uVar11 = (quantum_info->state).bits;\n          uVar17 = uVar11;\n          if (uVar25 <= uVar11) {\n            uVar17 = uVar25;\n          }\n          uVar9 = uVar25 - uVar17;\n          uVar25 = uVar9;\n          if ((int)uVar9 < 0) {\n            uVar25 = 0;\n          }\n          if (uVar11 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar28 = uVar10 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar28 = 0;\n          }\n          uVar11 = uVar11 - uVar17;\n          (quantum_info->state).bits = uVar11;\n          bVar15 = (byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f));\n          if ((uVar11 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar11 == 0) {\n            pbVar31 = pbVar31 + 1;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels = CONCAT44(iVar26 + image->number_channels * 4,pbVar31 + quantum_info->pad);\n        if (puVar29 == q) {\n          return;\n        }\n        uVar25 = quantum_info->depth;\n      } while( true );\n    }" if (parenthesized_expression "(uVar25 == 10)" ( (binary_expression "uVar25 == 10" identifier == number_literal) )) (compound_statement "{\n      if (quantum_info->pack == MagickFalse) {\n        if ((int)q < 1) {\n          return;\n        }\n        iVar26 = 0;\n        uVar25 = 0;\n        dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar43 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar34 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar32 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          iVar30 = 0;\n          dVar48 = *(double *)(puVar4 + -0x7538);\n          dVar50 = *(double *)(puVar2 + 0x1418);\n          dVar46 = *(double *)(puVar2 + 0x1a58);\n          dVar45 = *(double *)(puVar2 + 0x1a60);\n          dVar49 = *(double *)(puVar2 + 0x1400);\n          dVar47 = dVar50;\n          do {\n            pPVar8 = image->channel_map;\n            if (iVar30 == 2) {\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }\n            else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar9 = (uint)(iVar30 + iVar26) % 3;\n            if (uVar9 == 1) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }\n            iVar30 = iVar30 + 1;\n          } while (iVar30 != 4);\n          iVar26 = iVar26 + 4;\n          number_pixels = CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (iVar26 == (int)q << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (quantum_info->quantum == 0x20) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar25 = 10;\n        dVar33 = dVar45;\n        dVar34 = dVar46;\n        dVar35 = dVar48;\n        dVar36 = dVar49;\n        dVar37 = dVar48;\n        dVar47 = dVar46;\n        while( true ) {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n          if (NAN(fVar42)) {\n            uVar9 = 0;\n          }\n          else {\n            uVar9 = 0;\n            if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }\n          }\n          uVar10 = (quantum_info->state).bits;\n          if (uVar10 == 0) {\n            uVar10 = 0x20;\n            (quantum_info->state).bits = 0x20;\n          }\n          if (0 < (int)uVar25) {\n            bVar1 = uVar10 < uVar25;\n            uVar17 = uVar25;\n            puVar13 = puVar12;\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar17);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar12 = puVar13;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          if ((pPVar8[4].traits != BlendPixelTrait) ||\n             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          uVar10 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            while( true ) {\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (puVar29 == q) break;\n          uVar25 = quantum_info->depth;\n        }\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar25 = 10;\n      dVar33 = dVar45;\n      dVar34 = dVar46;\n      dVar35 = dVar48;\n      dVar36 = dVar49;\n      dVar37 = dVar48;\n      dVar47 = dVar46;\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        pbVar31 = (byte *)number_pixels;\n        pPVar8 = image->channel_map;\n        fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n        if (NAN(fVar42)) {\n          uVar9 = 0;\n        }\n        else {\n          uVar9 = 0;\n          if (0.0 < fVar42) {\n            dVar50 = ((double)fVar42 * dVar35) / dVar34;\n            if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n        }\n        sVar27 = (quantum_info->state).bits;\n        if (sVar27 == 0) {\n          sVar27 = 8;\n          (quantum_info->state).bits = 8;\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166458;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_00166434:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cbc:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166550;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016652c:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cb4:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          uVar10 = 0;\n          uVar9 = uVar25;\n          if (pPVar8[4].traits == BlendPixelTrait) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016662c:\n          pPVar8 = image->channel_map;\n          uVar25 = quantum_info->depth;\n          if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n            if (fVar42 <= 0.0) goto LAB_00166640;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar10 = 0;\n          }\n          uVar9 = uVar25;\n          if (sVar27 == 0) {\n            (quantum_info->state).bits = 8;\n          }\n        }\n        while (0 < (int)uVar9) {\n          uVar11 = (quantum_info->state).bits;\n          uVar17 = uVar11;\n          if (uVar25 <= uVar11) {\n            uVar17 = uVar25;\n          }\n          uVar9 = uVar25 - uVar17;\n          uVar25 = uVar9;\n          if ((int)uVar9 < 0) {\n            uVar25 = 0;\n          }\n          if (uVar11 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar28 = uVar10 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar28 = 0;\n          }\n          uVar11 = uVar11 - uVar17;\n          (quantum_info->state).bits = uVar11;\n          bVar15 = (byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f));\n          if ((uVar11 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar11 == 0) {\n            pbVar31 = pbVar31 + 1;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels = CONCAT44(iVar26 + image->number_channels * 4,pbVar31 + quantum_info->pad);\n        if (puVar29 == q) {\n          return;\n        }\n        uVar25 = quantum_info->depth;\n      } while( true );\n    }" { (if_statement "if (quantum_info->pack == MagickFalse) {\n        if ((int)q < 1) {\n          return;\n        }\n        iVar26 = 0;\n        uVar25 = 0;\n        dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar43 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar34 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar32 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          iVar30 = 0;\n          dVar48 = *(double *)(puVar4 + -0x7538);\n          dVar50 = *(double *)(puVar2 + 0x1418);\n          dVar46 = *(double *)(puVar2 + 0x1a58);\n          dVar45 = *(double *)(puVar2 + 0x1a60);\n          dVar49 = *(double *)(puVar2 + 0x1400);\n          dVar47 = dVar50;\n          do {\n            pPVar8 = image->channel_map;\n            if (iVar30 == 2) {\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }\n            else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar9 = (uint)(iVar30 + iVar26) % 3;\n            if (uVar9 == 1) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }\n            iVar30 = iVar30 + 1;\n          } while (iVar30 != 4);\n          iVar26 = iVar26 + 4;\n          number_pixels = CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (iVar26 == (int)q << 2) {\n            return;\n          }\n        } while( true );\n      }" if (parenthesized_expression "(quantum_info->pack == MagickFalse)" ( (binary_expression "quantum_info->pack == MagickFalse" (field_expression "quantum_info->pack" identifier -> field_identifier) == identifier) )) (compound_statement "{\n        if ((int)q < 1) {\n          return;\n        }\n        iVar26 = 0;\n        uVar25 = 0;\n        dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar43 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar34 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar32 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          iVar30 = 0;\n          dVar48 = *(double *)(puVar4 + -0x7538);\n          dVar50 = *(double *)(puVar2 + 0x1418);\n          dVar46 = *(double *)(puVar2 + 0x1a58);\n          dVar45 = *(double *)(puVar2 + 0x1a60);\n          dVar49 = *(double *)(puVar2 + 0x1400);\n          dVar47 = dVar50;\n          do {\n            pPVar8 = image->channel_map;\n            if (iVar30 == 2) {\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }\n            else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar9 = (uint)(iVar30 + iVar26) % 3;\n            if (uVar9 == 1) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }\n            iVar30 = iVar30 + 1;\n          } while (iVar30 != 4);\n          iVar26 = iVar26 + 4;\n          number_pixels = CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (iVar26 == (int)q << 2) {\n            return;\n          }\n        } while( true );\n      }" { (if_statement "if ((int)q < 1) {\n          return;\n        }" if (parenthesized_expression "((int)q < 1)" ( (binary_expression "(int)q < 1" (cast_expression "(int)q" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (expression_statement "dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar33 = *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "uVar43 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);" (assignment_expression "uVar43 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x51e0)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x51e0" identifier + number_literal) ))))) ;) (expression_statement "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar34 = *(double *)(PTR_s_courses_003a88ec + -0x7538);" (assignment_expression "dVar34 = *(double *)(PTR_s_courses_003a88ec + -0x7538)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x7538)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x7538)" ( (binary_expression "PTR_s_courses_003a88ec + -0x7538" identifier + number_literal) ))))) ;) (expression_statement "dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (do_statement "do {\n          iVar32 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          iVar30 = 0;\n          dVar48 = *(double *)(puVar4 + -0x7538);\n          dVar50 = *(double *)(puVar2 + 0x1418);\n          dVar46 = *(double *)(puVar2 + 0x1a58);\n          dVar45 = *(double *)(puVar2 + 0x1a60);\n          dVar49 = *(double *)(puVar2 + 0x1400);\n          dVar47 = dVar50;\n          do {\n            pPVar8 = image->channel_map;\n            if (iVar30 == 2) {\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }\n            else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar9 = (uint)(iVar30 + iVar26) % 3;\n            if (uVar9 == 1) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }\n            iVar30 = iVar30 + 1;\n          } while (iVar30 != 4);\n          iVar26 = iVar26 + 4;\n          number_pixels = CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (iVar26 == (int)q << 2) {\n            return;\n          }\n        } while( true );" do (compound_statement "{\n          iVar32 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          iVar30 = 0;\n          dVar48 = *(double *)(puVar4 + -0x7538);\n          dVar50 = *(double *)(puVar2 + 0x1418);\n          dVar46 = *(double *)(puVar2 + 0x1a58);\n          dVar45 = *(double *)(puVar2 + 0x1a60);\n          dVar49 = *(double *)(puVar2 + 0x1400);\n          dVar47 = dVar50;\n          do {\n            pPVar8 = image->channel_map;\n            if (iVar30 == 2) {\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }\n            else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar9 = (uint)(iVar30 + iVar26) % 3;\n            if (uVar9 == 1) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }\n            iVar30 = iVar30 + 1;\n          } while (iVar30 != 4);\n          iVar26 = iVar26 + 4;\n          number_pixels = CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (iVar26 == (int)q << 2) {\n            return;\n          }\n        }" { (expression_statement "iVar32 = (int)(number_pixels >> 0x20);" (assignment_expression "iVar32 = (int)(number_pixels >> 0x20)" identifier = (cast_expression "(int)(number_pixels >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(number_pixels >> 0x20)" ( (binary_expression "number_pixels >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "puVar12 = (undefined1 *)number_pixels;" (assignment_expression "puVar12 = (undefined1 *)number_pixels" identifier = (cast_expression "(undefined1 *)number_pixels" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar30 = 0;" (assignment_expression "iVar30 = 0" identifier = number_literal) ;) (expression_statement "dVar48 = *(double *)(puVar4 + -0x7538);" (assignment_expression "dVar48 = *(double *)(puVar4 + -0x7538)" identifier = (pointer_expression "*(double *)(puVar4 + -0x7538)" * (cast_expression "(double *)(puVar4 + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x7538)" ( (binary_expression "puVar4 + -0x7538" identifier + number_literal) ))))) ;) (expression_statement "dVar50 = *(double *)(puVar2 + 0x1418);" (assignment_expression "dVar50 = *(double *)(puVar2 + 0x1418)" identifier = (pointer_expression "*(double *)(puVar2 + 0x1418)" * (cast_expression "(double *)(puVar2 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1418)" ( (binary_expression "puVar2 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "dVar46 = *(double *)(puVar2 + 0x1a58);" (assignment_expression "dVar46 = *(double *)(puVar2 + 0x1a58)" identifier = (pointer_expression "*(double *)(puVar2 + 0x1a58)" * (cast_expression "(double *)(puVar2 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1a58)" ( (binary_expression "puVar2 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar45 = *(double *)(puVar2 + 0x1a60);" (assignment_expression "dVar45 = *(double *)(puVar2 + 0x1a60)" identifier = (pointer_expression "*(double *)(puVar2 + 0x1a60)" * (cast_expression "(double *)(puVar2 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1a60)" ( (binary_expression "puVar2 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "dVar49 = *(double *)(puVar2 + 0x1400);" (assignment_expression "dVar49 = *(double *)(puVar2 + 0x1400)" identifier = (pointer_expression "*(double *)(puVar2 + 0x1400)" * (cast_expression "(double *)(puVar2 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1400)" ( (binary_expression "puVar2 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar47 = dVar50;" (assignment_expression "dVar47 = dVar50" identifier = identifier) ;) (do_statement "do {\n            pPVar8 = image->channel_map;\n            if (iVar30 == 2) {\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }\n            else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar9 = (uint)(iVar30 + iVar26) % 3;\n            if (uVar9 == 1) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }\n            iVar30 = iVar30 + 1;\n          } while (iVar30 != 4);" do (compound_statement "{\n            pPVar8 = image->channel_map;\n            if (iVar30 == 2) {\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }\n            else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar9 = (uint)(iVar30 + iVar26) % 3;\n            if (uVar9 == 1) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }\n            iVar30 = iVar30 + 1;\n          }" { (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (if_statement "if (iVar30 == 2) {\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }\n            else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }" if (parenthesized_expression "(iVar30 == 2)" ( (binary_expression "iVar30 == 2" identifier == number_literal) )) (compound_statement "{\n              fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);\n              if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }\n              dVar38 = (double)(int)uVar9;\n              if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }\nLAB_00164eec:\n              fVar42 = (float)dVar38;\n            }" { (expression_statement "fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar32 + pPVar8[2].offset * 4)" identifier = (pointer_expression "*(float *)(iVar32 + pPVar8[2].offset * 4)" * (cast_expression "(float *)(iVar32 + pPVar8[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar32 + pPVar8[2].offset * 4)" ( (binary_expression "iVar32 + pPVar8[2].offset * 4" identifier + (binary_expression "pPVar8[2].offset * 4" (field_expression "pPVar8[2].offset" (subscript_expression "pPVar8[2]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar42 < (float)uVar43) {\n                uVar9 = (uint)fVar42;\n              }\n              else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }" if (parenthesized_expression "(fVar42 < (float)uVar43)" ( (binary_expression "fVar42 < (float)uVar43" identifier < (cast_expression "(float)uVar43" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar9 = (uint)fVar42;\n              }" { (expression_statement "uVar9 = (uint)fVar42;" (assignment_expression "uVar9 = (uint)fVar42" identifier = (cast_expression "(uint)fVar42" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }" else (compound_statement "{\n                uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;\n              }" { (expression_statement "uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000;" (assignment_expression "uVar9 = (int)(fVar42 - (float)uVar43) | 0x80000000" identifier = (binary_expression "(int)(fVar42 - (float)uVar43) | 0x80000000" (cast_expression "(int)(fVar42 - (float)uVar43)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar42 - (float)uVar43)" ( (binary_expression "fVar42 - (float)uVar43" identifier - (cast_expression "(float)uVar43" ( (type_descriptor "float" primitive_type) ) identifier)) ))) | number_literal)) ;) }))) (expression_statement "dVar38 = (double)(int)uVar9;" (assignment_expression "dVar38 = (double)(int)uVar9" identifier = (cast_expression "(double)(int)uVar9" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar9 < 0) {\n                dVar38 = dVar38 + dVar33;\n              }" if (parenthesized_expression "((int)uVar9 < 0)" ( (binary_expression "(int)uVar9 < 0" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                dVar38 = dVar38 + dVar33;\n              }" { (expression_statement "dVar38 = dVar38 + dVar33;" (assignment_expression "dVar38 = dVar38 + dVar33" identifier = (binary_expression "dVar38 + dVar33" identifier + identifier)) ;) })) (labeled_statement "LAB_00164eec:\n              fVar42 = (float)dVar38;" statement_identifier : (expression_statement "fVar42 = (float)dVar38;" (assignment_expression "fVar42 = (float)dVar38" identifier = (cast_expression "(float)dVar38" ( (type_descriptor "float" primitive_type) ) identifier)) ;)) }) (else_clause "else {\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }" else (compound_statement "{\n              if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar42 = 0.0;\n              if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }\n            }" { (if_statement "if (iVar30 != 3) {\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }" if (parenthesized_expression "(iVar30 != 3)" ( (binary_expression "iVar30 != 3" identifier != number_literal) )) (compound_statement "{\n                fVar42 = *(float *)(puVar3 + -0x51e0);\n                if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                goto LAB_00164eec;\n              }" { (expression_statement "fVar42 = *(float *)(puVar3 + -0x51e0);" (assignment_expression "fVar42 = *(float *)(puVar3 + -0x51e0)" identifier = (pointer_expression "*(float *)(puVar3 + -0x51e0)" * (cast_expression "(float *)(puVar3 + -0x51e0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x51e0)" ( (binary_expression "puVar3 + -0x51e0" identifier + number_literal) ))))) ;) (if_statement "if (iVar30 == 1) {\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }\n                else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }" if (parenthesized_expression "(iVar30 == 1)" ( (binary_expression "iVar30 == 1" identifier == number_literal) )) (compound_statement "{\n                  fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }" { (expression_statement "fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4);" (assignment_expression "fVar40 = *(float *)(iVar32 + pPVar8[1].offset * 4)" identifier = (pointer_expression "*(float *)(iVar32 + pPVar8[1].offset * 4)" * (cast_expression "(float *)(iVar32 + pPVar8[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar32 + pPVar8[1].offset * 4)" ( (binary_expression "iVar32 + pPVar8[1].offset * 4" identifier + (binary_expression "pPVar8[1].offset * 4" (field_expression "pPVar8[1].offset" (subscript_expression "pPVar8[1]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }" if (parenthesized_expression "(fVar40 < fVar42)" ( (binary_expression "fVar40 < fVar42" identifier < identifier) )) (compound_statement "{\n                    uVar9 = (uint)fVar40;\n                  }" { (expression_statement "uVar9 = (uint)fVar40;" (assignment_expression "uVar9 = (uint)fVar40" identifier = (cast_expression "(uint)fVar40" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }" else (compound_statement "{\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }" { (expression_statement "uVar9 = (int)(fVar40 - fVar42) | 0x80000000;" (assignment_expression "uVar9 = (int)(fVar40 - fVar42) | 0x80000000" identifier = (binary_expression "(int)(fVar40 - fVar42) | 0x80000000" (cast_expression "(int)(fVar40 - fVar42)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar40 - fVar42)" ( (binary_expression "fVar40 - fVar42" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "dVar38 = (double)(int)uVar9;" (assignment_expression "dVar38 = (double)(int)uVar9" identifier = (cast_expression "(double)(int)uVar9" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }" if (parenthesized_expression "((int)uVar9 < 0)" ( (binary_expression "(int)uVar9 < 0" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    dVar38 = dVar38 + dVar50;\n                  }" { (expression_statement "dVar38 = dVar38 + dVar50;" (assignment_expression "dVar38 = dVar38 + dVar50" identifier = (binary_expression "dVar38 + dVar50" identifier + identifier)) ;) })) }) (else_clause "else {\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }" else (compound_statement "{\n                  fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);\n                  if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }\n                  dVar38 = (double)(int)uVar9;\n                  if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }\n                }" { (expression_statement "fVar40 = *(float *)(iVar32 + pPVar8->offset * 4);" (assignment_expression "fVar40 = *(float *)(iVar32 + pPVar8->offset * 4)" identifier = (pointer_expression "*(float *)(iVar32 + pPVar8->offset * 4)" * (cast_expression "(float *)(iVar32 + pPVar8->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar32 + pPVar8->offset * 4)" ( (binary_expression "iVar32 + pPVar8->offset * 4" identifier + (binary_expression "pPVar8->offset * 4" (field_expression "pPVar8->offset" identifier -> field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar40 < fVar42) {\n                    uVar9 = (uint)fVar40;\n                  }\n                  else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }" if (parenthesized_expression "(fVar40 < fVar42)" ( (binary_expression "fVar40 < fVar42" identifier < identifier) )) (compound_statement "{\n                    uVar9 = (uint)fVar40;\n                  }" { (expression_statement "uVar9 = (uint)fVar40;" (assignment_expression "uVar9 = (uint)fVar40" identifier = (cast_expression "(uint)fVar40" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }" else (compound_statement "{\n                    uVar9 = (int)(fVar40 - fVar42) | 0x80000000;\n                  }" { (expression_statement "uVar9 = (int)(fVar40 - fVar42) | 0x80000000;" (assignment_expression "uVar9 = (int)(fVar40 - fVar42) | 0x80000000" identifier = (binary_expression "(int)(fVar40 - fVar42) | 0x80000000" (cast_expression "(int)(fVar40 - fVar42)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar40 - fVar42)" ( (binary_expression "fVar40 - fVar42" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "dVar38 = (double)(int)uVar9;" (assignment_expression "dVar38 = (double)(int)uVar9" identifier = (cast_expression "(double)(int)uVar9" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar9 < 0) {\n                    dVar38 = dVar38 + dVar50;\n                  }" if (parenthesized_expression "((int)uVar9 < 0)" ( (binary_expression "(int)uVar9 < 0" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    dVar38 = dVar38 + dVar50;\n                  }" { (expression_statement "dVar38 = dVar38 + dVar50;" (assignment_expression "dVar38 = dVar38 + dVar50" identifier = (binary_expression "dVar38 + dVar50" identifier + identifier)) ;) })) }))) (goto_statement "goto LAB_00164eec;" goto statement_identifier ;) })) (expression_statement "fVar42 = 0.0;" (assignment_expression "fVar42 = 0.0" identifier = number_literal) ;) (if_statement "if (pPVar8[4].traits == BlendPixelTrait) {\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }" if (parenthesized_expression "(pPVar8[4].traits == BlendPixelTrait)" ( (binary_expression "pPVar8[4].traits == BlendPixelTrait" (field_expression "pPVar8[4].traits" (subscript_expression "pPVar8[4]" identifier [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\n                fVar40 = *(float *)(puVar3 + -0x51e0);\n                fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);\n                if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }\n                dVar38 = (double)(int)uVar9;\n                if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }\n                goto LAB_00164eec;\n              }" { (expression_statement "fVar40 = *(float *)(puVar3 + -0x51e0);" (assignment_expression "fVar40 = *(float *)(puVar3 + -0x51e0)" identifier = (pointer_expression "*(float *)(puVar3 + -0x51e0)" * (cast_expression "(float *)(puVar3 + -0x51e0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x51e0)" ( (binary_expression "puVar3 + -0x51e0" identifier + number_literal) ))))) ;) (expression_statement "fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4);" (assignment_expression "fVar42 = fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4)" identifier = (binary_expression "fVar39 - *(float *)(iVar32 + pPVar8[4].offset * 4)" identifier - (pointer_expression "*(float *)(iVar32 + pPVar8[4].offset * 4)" * (cast_expression "(float *)(iVar32 + pPVar8[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar32 + pPVar8[4].offset * 4)" ( (binary_expression "iVar32 + pPVar8[4].offset * 4" identifier + (binary_expression "pPVar8[4].offset * 4" (field_expression "pPVar8[4].offset" (subscript_expression "pPVar8[4]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))))) ;) (if_statement "if (fVar42 < fVar40) {\n                  uVar9 = (uint)fVar42;\n                }\n                else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }" if (parenthesized_expression "(fVar42 < fVar40)" ( (binary_expression "fVar42 < fVar40" identifier < identifier) )) (compound_statement "{\n                  uVar9 = (uint)fVar42;\n                }" { (expression_statement "uVar9 = (uint)fVar42;" (assignment_expression "uVar9 = (uint)fVar42" identifier = (cast_expression "(uint)fVar42" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }" else (compound_statement "{\n                  uVar9 = (int)(fVar42 - fVar40) | 0x80000000;\n                }" { (expression_statement "uVar9 = (int)(fVar42 - fVar40) | 0x80000000;" (assignment_expression "uVar9 = (int)(fVar42 - fVar40) | 0x80000000" identifier = (binary_expression "(int)(fVar42 - fVar40) | 0x80000000" (cast_expression "(int)(fVar42 - fVar40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar42 - fVar40)" ( (binary_expression "fVar42 - fVar40" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "dVar38 = (double)(int)uVar9;" (assignment_expression "dVar38 = (double)(int)uVar9" identifier = (cast_expression "(double)(int)uVar9" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar9 < 0) {\n                  dVar38 = dVar38 + dVar47;\n                }" if (parenthesized_expression "((int)uVar9 < 0)" ( (binary_expression "(int)uVar9 < 0" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  dVar38 = dVar38 + dVar47;\n                }" { (expression_statement "dVar38 = dVar38 + dVar47;" (assignment_expression "dVar38 = dVar38 + dVar47" identifier = (binary_expression "dVar38 + dVar47" identifier + identifier)) ;) })) (goto_statement "goto LAB_00164eec;" goto statement_identifier ;) })) }))) (expression_statement "uVar9 = (uint)(iVar30 + iVar26) % 3;" (assignment_expression "uVar9 = (uint)(iVar30 + iVar26) % 3" identifier = (binary_expression "(uint)(iVar30 + iVar26) % 3" (call_expression "(uint)(iVar30 + iVar26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar30 + iVar26)" ( (binary_expression "iVar30 + iVar26" identifier + identifier) ))) % number_literal)) ;) (if_statement "if (uVar9 == 1) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }" if (parenthesized_expression "(uVar9 == 1)" ( (binary_expression "uVar9 == 1" identifier == number_literal) )) (compound_statement "{\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }\n            }" { (if_statement "if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }" if (parenthesized_expression "(0.0 < fVar42)" ( (binary_expression "0.0 < fVar42" number_literal < identifier) )) (compound_statement "{\n                dVar38 = ((double)fVar42 * dVar34) / dVar35;\n                if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }\n              }" { (expression_statement "dVar38 = ((double)fVar42 * dVar34) / dVar35;" (assignment_expression "dVar38 = ((double)fVar42 * dVar34) / dVar35" identifier = (binary_expression "((double)fVar42 * dVar34) / dVar35" (parenthesized_expression "((double)fVar42 * dVar34)" ( (binary_expression "(double)fVar42 * dVar34" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar38 < dVar36) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar25 = 0xfffff000;\n                }" if (parenthesized_expression "(dVar38 < dVar36)" ( (binary_expression "dVar38 < dVar36" identifier < identifier) )) (compound_statement "{\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);\n                  uVar25 = uVar25 | extraout_v1_01 << 0xc;\n                }" { (expression_statement "(*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37);" (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar37)" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar38 + dVar37)" ( (binary_expression "dVar38 + dVar37" identifier + identifier) ))) ;) (expression_statement "uVar25 = uVar25 | extraout_v1_01 << 0xc;" (assignment_expression "uVar25 = uVar25 | extraout_v1_01 << 0xc" identifier = (binary_expression "uVar25 | extraout_v1_01 << 0xc" identifier | (binary_expression "extraout_v1_01 << 0xc" identifier << number_literal))) ;) }) (else_clause "else {\n                  uVar25 = 0xfffff000;\n                }" else (compound_statement "{\n                  uVar25 = 0xfffff000;\n                }" { (expression_statement "uVar25 = 0xfffff000;" (assignment_expression "uVar25 = 0xfffff000" identifier = number_literal) ;) }))) })) }) (else_clause "else if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }" else (if_statement "if (uVar9 == 2) {\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }\n            else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }" if (parenthesized_expression "(uVar9 == 2)" ( (binary_expression "uVar9 == 2" identifier == number_literal) )) (compound_statement "{\n              if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }\n              uVar6 = (undefined1)uVar25;\n              uVar20 = (undefined1)(uVar25 >> 0x18);\n              uVar16 = (undefined1)(uVar25 >> 0x10);\n              uVar14 = (undefined1)(uVar25 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }\n            }" { (if_statement "if (0.0 < fVar42) {\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }" if (parenthesized_expression "(0.0 < fVar42)" ( (binary_expression "0.0 < fVar42" number_literal < identifier) )) (compound_statement "{\n                dVar38 = ((double)fVar42 * dVar48) / dVar46;\n                if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }\n              }" { (expression_statement "dVar38 = ((double)fVar42 * dVar48) / dVar46;" (assignment_expression "dVar38 = ((double)fVar42 * dVar48) / dVar46" identifier = (binary_expression "((double)fVar42 * dVar48) / dVar46" (parenthesized_expression "((double)fVar42 * dVar48)" ( (binary_expression "(double)fVar42 * dVar48" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar38 < dVar45) {\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }\n                else {\n                  uVar25 = 0xfffffffc;\n                }" if (parenthesized_expression "(dVar38 < dVar45)" ( (binary_expression "dVar38 < dVar45" identifier < identifier) )) (compound_statement "{\n                  (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);\n                  uVar25 = uVar25 | extraout_v1 << 2;\n                }" { (expression_statement "(*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49);" (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + dVar49)" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar38 + dVar49)" ( (binary_expression "dVar38 + dVar49" identifier + identifier) ))) ;) (expression_statement "uVar25 = uVar25 | extraout_v1 << 2;" (assignment_expression "uVar25 = uVar25 | extraout_v1 << 2" identifier = (binary_expression "uVar25 | extraout_v1 << 2" identifier | (binary_expression "extraout_v1 << 2" identifier << number_literal))) ;) }) (else_clause "else {\n                  uVar25 = 0xfffffffc;\n                }" else (compound_statement "{\n                  uVar25 = 0xfffffffc;\n                }" { (expression_statement "uVar25 = 0xfffffffc;" (assignment_expression "uVar25 = 0xfffffffc" identifier = number_literal) ;) }))) })) (expression_statement "uVar6 = (undefined1)uVar25;" (assignment_expression "uVar6 = (undefined1)uVar25" identifier = (cast_expression "(undefined1)uVar25" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uVar20 = (undefined1)(uVar25 >> 0x18);" (assignment_expression "uVar20 = (undefined1)(uVar25 >> 0x18)" identifier = (call_expression "(undefined1)(uVar25 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 0x18)" ( (binary_expression "uVar25 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar16 = (undefined1)(uVar25 >> 0x10);" (assignment_expression "uVar16 = (undefined1)(uVar25 >> 0x10)" identifier = (call_expression "(undefined1)(uVar25 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 0x10)" ( (binary_expression "uVar25 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)(uVar25 >> 8);" (assignment_expression "uVar14 = (undefined1)(uVar25 >> 8)" identifier = (call_expression "(undefined1)(uVar25 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 8)" ( (binary_expression "uVar25 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }\n              else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\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                *puVar12 = uVar6;\n                uVar25 = 0;\n                puVar12[1] = uVar14;\n                puVar12[2] = uVar16;\n                puVar12[3] = uVar20;\n                puVar12 = puVar12 + 4;\n              }" { (expression_statement "*puVar12 = uVar6;" (assignment_expression "*puVar12 = uVar6" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (expression_statement "puVar12[1] = uVar14;" (assignment_expression "puVar12[1] = uVar14" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = uVar16;" (assignment_expression "puVar12[2] = uVar16" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = uVar20;" (assignment_expression "puVar12[3] = uVar20" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12 = puVar12 + 4;" (assignment_expression "puVar12 = puVar12 + 4" identifier = (binary_expression "puVar12 + 4" identifier + number_literal)) ;) }) (else_clause "else {\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }" else (compound_statement "{\n                uVar25 = 0;\n                *puVar12 = uVar20;\n                puVar12[1] = uVar16;\n                puVar12[2] = uVar14;\n                puVar12[3] = uVar6;\n                puVar12 = puVar12 + 4;\n              }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (expression_statement "*puVar12 = uVar20;" (assignment_expression "*puVar12 = uVar20" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "puVar12[1] = uVar16;" (assignment_expression "puVar12[1] = uVar16" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = uVar14;" (assignment_expression "puVar12[2] = uVar14" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = uVar6;" (assignment_expression "puVar12[3] = uVar6" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12 = puVar12 + 4;" (assignment_expression "puVar12 = puVar12 + 4" identifier = (binary_expression "puVar12 + 4" identifier + number_literal)) ;) }))) }) (else_clause "else if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }" else (if_statement "if (0.0 < fVar42) {\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }" if (parenthesized_expression "(0.0 < fVar42)" ( (binary_expression "0.0 < fVar42" number_literal < identifier) )) (compound_statement "{\n              dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }\n            }" { (expression_statement "dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);" (assignment_expression "dVar38 = ((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58)" identifier = (binary_expression "((double)fVar42 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58)" (parenthesized_expression "((double)fVar42 * *(double *)(puVar4 + -0x7538))" ( (binary_expression "(double)fVar42 * *(double *)(puVar4 + -0x7538)" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(puVar4 + -0x7538)" * (cast_expression "(double *)(puVar4 + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x7538)" ( (binary_expression "puVar4 + -0x7538" identifier + number_literal) ))))) )) / (pointer_expression "*(double *)(puVar2 + 0x1a58)" * (cast_expression "(double *)(puVar2 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1a58)" ( (binary_expression "puVar2 + 0x1a58" identifier + number_literal) )))))) ;) (if_statement "if (dVar38 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar25 = uVar25 | 0xffc00000;\n              }" if (parenthesized_expression "(dVar38 < *(double *)(puVar2 + 0x1a60))" ( (binary_expression "dVar38 < *(double *)(puVar2 + 0x1a60)" identifier < (pointer_expression "*(double *)(puVar2 + 0x1a60)" * (cast_expression "(double *)(puVar2 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1a60)" ( (binary_expression "puVar2 + 0x1a60" identifier + number_literal) ))))) )) (compound_statement "{\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));\n                uVar25 = uVar25 | extraout_v1_00 << 0x16;\n              }" { (expression_statement "(*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400));" (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar38 + *(double *)(puVar2 + 0x1400))" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar38 + *(double *)(puVar2 + 0x1400))" ( (binary_expression "dVar38 + *(double *)(puVar2 + 0x1400)" identifier + (pointer_expression "*(double *)(puVar2 + 0x1400)" * (cast_expression "(double *)(puVar2 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1400)" ( (binary_expression "puVar2 + 0x1400" identifier + number_literal) ))))) ))) ;) (expression_statement "uVar25 = uVar25 | extraout_v1_00 << 0x16;" (assignment_expression "uVar25 = uVar25 | extraout_v1_00 << 0x16" identifier = (binary_expression "uVar25 | extraout_v1_00 << 0x16" identifier | (binary_expression "extraout_v1_00 << 0x16" identifier << number_literal))) ;) }) (else_clause "else {\n                uVar25 = uVar25 | 0xffc00000;\n              }" else (compound_statement "{\n                uVar25 = uVar25 | 0xffc00000;\n              }" { (expression_statement "uVar25 = uVar25 | 0xffc00000;" (assignment_expression "uVar25 = uVar25 | 0xffc00000" identifier = (binary_expression "uVar25 | 0xffc00000" identifier | number_literal)) ;) }))) })))))) (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" identifier = (binary_expression "iVar30 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar30 != 4)" ( (binary_expression "iVar30 != 4" identifier != number_literal) )) ;) (expression_statement "iVar26 = iVar26 + 4;" (assignment_expression "iVar26 = iVar26 + 4" identifier = (binary_expression "iVar26 + 4" identifier + number_literal)) ;) (expression_statement "number_pixels = CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad);" (assignment_expression "number_pixels = CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad)" identifier = (call_expression "CONCAT44(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad)" identifier (argument_list "(iVar32 + image->number_channels * 4,puVar12 + quantum_info->pad)" ( (binary_expression "iVar32 + image->number_channels * 4" identifier + (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal)) , (binary_expression "puVar12 + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) )))) ;) (if_statement "if (iVar26 == (int)q << 2) {\n            return;\n          }" if (parenthesized_expression "(iVar26 == (int)q << 2)" ( (binary_expression "iVar26 == (int)q << 2" identifier == (binary_expression "(int)q << 2" (cast_expression "(int)q" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (quantum_info->quantum == 0x20) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar25 = 10;\n        dVar33 = dVar45;\n        dVar34 = dVar46;\n        dVar35 = dVar48;\n        dVar36 = dVar49;\n        dVar37 = dVar48;\n        dVar47 = dVar46;\n        while( true ) {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n          if (NAN(fVar42)) {\n            uVar9 = 0;\n          }\n          else {\n            uVar9 = 0;\n            if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }\n          }\n          uVar10 = (quantum_info->state).bits;\n          if (uVar10 == 0) {\n            uVar10 = 0x20;\n            (quantum_info->state).bits = 0x20;\n          }\n          if (0 < (int)uVar25) {\n            bVar1 = uVar10 < uVar25;\n            uVar17 = uVar25;\n            puVar13 = puVar12;\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar17);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar12 = puVar13;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          if ((pPVar8[4].traits != BlendPixelTrait) ||\n             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          uVar10 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            while( true ) {\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (puVar29 == q) break;\n          uVar25 = quantum_info->depth;\n        }\n        return;\n      }" if (parenthesized_expression "(quantum_info->quantum == 0x20)" ( (binary_expression "quantum_info->quantum == 0x20" (field_expression "quantum_info->quantum" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar25 = 10;\n        dVar33 = dVar45;\n        dVar34 = dVar46;\n        dVar35 = dVar48;\n        dVar36 = dVar49;\n        dVar37 = dVar48;\n        dVar47 = dVar46;\n        while( true ) {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n          if (NAN(fVar42)) {\n            uVar9 = 0;\n          }\n          else {\n            uVar9 = 0;\n            if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }\n          }\n          uVar10 = (quantum_info->state).bits;\n          if (uVar10 == 0) {\n            uVar10 = 0x20;\n            (quantum_info->state).bits = 0x20;\n          }\n          if (0 < (int)uVar25) {\n            bVar1 = uVar10 < uVar25;\n            uVar17 = uVar25;\n            puVar13 = puVar12;\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar17);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar12 = puVar13;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          if ((pPVar8[4].traits != BlendPixelTrait) ||\n             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          uVar10 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            while( true ) {\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (puVar29 == q) break;\n          uVar25 = quantum_info->depth;\n        }\n        return;\n      }" { (if_statement "if ((int)q < 1) {\n          return;\n        }" if (parenthesized_expression "((int)q < 1)" ( (binary_expression "(int)q < 1" (cast_expression "(int)q" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "puVar29 = (uchar *)0x0;" (assignment_expression "puVar29 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);" (assignment_expression "dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x7538)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x7538)" ( (binary_expression "PTR_s_courses_003a88ec + -0x7538" identifier + number_literal) ))))) ;) (expression_statement "dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = 10;" (assignment_expression "uVar25 = 10" identifier = number_literal) ;) (expression_statement "dVar33 = dVar45;" (assignment_expression "dVar33 = dVar45" identifier = identifier) ;) (expression_statement "dVar34 = dVar46;" (assignment_expression "dVar34 = dVar46" identifier = identifier) ;) (expression_statement "dVar35 = dVar48;" (assignment_expression "dVar35 = dVar48" identifier = identifier) ;) (expression_statement "dVar36 = dVar49;" (assignment_expression "dVar36 = dVar49" identifier = identifier) ;) (expression_statement "dVar37 = dVar48;" (assignment_expression "dVar37 = dVar48" identifier = identifier) ;) (expression_statement "dVar47 = dVar46;" (assignment_expression "dVar47 = dVar46" identifier = identifier) ;) (while_statement "while( true ) {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n          if (NAN(fVar42)) {\n            uVar9 = 0;\n          }\n          else {\n            uVar9 = 0;\n            if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }\n          }\n          uVar10 = (quantum_info->state).bits;\n          if (uVar10 == 0) {\n            uVar10 = 0x20;\n            (quantum_info->state).bits = 0x20;\n          }\n          if (0 < (int)uVar25) {\n            bVar1 = uVar10 < uVar25;\n            uVar17 = uVar25;\n            puVar13 = puVar12;\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar17);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar12 = puVar13;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          if ((pPVar8[4].traits != BlendPixelTrait) ||\n             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          uVar10 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            while( true ) {\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (puVar29 == q) break;\n          uVar25 = quantum_info->depth;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n          if (NAN(fVar42)) {\n            uVar9 = 0;\n          }\n          else {\n            uVar9 = 0;\n            if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }\n          }\n          uVar10 = (quantum_info->state).bits;\n          if (uVar10 == 0) {\n            uVar10 = 0x20;\n            (quantum_info->state).bits = 0x20;\n          }\n          if (0 < (int)uVar25) {\n            bVar1 = uVar10 < uVar25;\n            uVar17 = uVar25;\n            puVar13 = puVar12;\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar17);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar10 < uVar25;\n          uVar17 = uVar25;\n          puVar12 = puVar13;\n          if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }\n          if ((pPVar8[4].traits != BlendPixelTrait) ||\n             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          uVar10 = uVar25;\n          puVar13 = puVar12;\n          if (0 < (int)uVar25) {\n            while( true ) {\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad);\n          if (puVar29 == q) break;\n          uVar25 = quantum_info->depth;\n        }" { (expression_statement "iVar26 = (int)(number_pixels >> 0x20);" (assignment_expression "iVar26 = (int)(number_pixels >> 0x20)" identifier = (cast_expression "(int)(number_pixels >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(number_pixels >> 0x20)" ( (binary_expression "number_pixels >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "puVar12 = (undefined1 *)number_pixels;" (assignment_expression "puVar12 = (undefined1 *)number_pixels" identifier = (cast_expression "(undefined1 *)number_pixels" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + pPVar8->offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + pPVar8->offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8->offset * 4)" ( (binary_expression "iVar26 + pPVar8->offset * 4" identifier + (binary_expression "pPVar8->offset * 4" (field_expression "pPVar8->offset" identifier -> field_identifier) * number_literal)) ))))) ;) (if_statement "if (NAN(fVar42)) {\n            uVar9 = 0;\n          }\n          else {\n            uVar9 = 0;\n            if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }\n          }" if (parenthesized_expression "(NAN(fVar42))" ( (call_expression "NAN(fVar42)" identifier (argument_list "(fVar42)" ( identifier ))) )) (compound_statement "{\n            uVar9 = 0;\n          }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            uVar9 = 0;\n            if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }\n          }" else (compound_statement "{\n            uVar9 = 0;\n            if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }\n          }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar42) {\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }" if (parenthesized_expression "(0.0 < fVar42)" ( (binary_expression "0.0 < fVar42" number_literal < identifier) )) (compound_statement "{\n              dVar50 = ((double)fVar42 * dVar35) / dVar34;\n              if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }\n            }" { (expression_statement "dVar50 = ((double)fVar42 * dVar35) / dVar34;" (assignment_expression "dVar50 = ((double)fVar42 * dVar35) / dVar34" identifier = (binary_expression "((double)fVar42 * dVar35) / dVar34" (parenthesized_expression "((double)fVar42 * dVar35)" ( (binary_expression "(double)fVar42 * dVar35" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar50 < dVar33) {\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }\n              else {\n                uVar9 = 0xffffffff;\n              }" if (parenthesized_expression "(dVar50 < dVar33)" ( (binary_expression "dVar50 < dVar33" identifier < identifier) )) (compound_statement "{\n                (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n                uVar9 = extraout_v1_06;\n              }" { (expression_statement "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);" (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36)" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar50 + dVar36)" ( (binary_expression "dVar50 + dVar36" identifier + identifier) ))) ;) (expression_statement "uVar9 = extraout_v1_06;" (assignment_expression "uVar9 = extraout_v1_06" identifier = identifier) ;) }) (else_clause "else {\n                uVar9 = 0xffffffff;\n              }" else (compound_statement "{\n                uVar9 = 0xffffffff;\n              }" { (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) }))) })) }))) (expression_statement "uVar10 = (quantum_info->state).bits;" (assignment_expression "uVar10 = (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 (uVar10 == 0) {\n            uVar10 = 0x20;\n            (quantum_info->state).bits = 0x20;\n          }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar10 = 0x20;\n            (quantum_info->state).bits = 0x20;\n          }" { (expression_statement "uVar10 = 0x20;" (assignment_expression "uVar10 = 0x20" identifier = number_literal) ;) (expression_statement "(quantum_info->state).bits = 0x20;" (assignment_expression "(quantum_info->state).bits = 0x20" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) (if_statement "if (0 < (int)uVar25) {\n            bVar1 = uVar10 < uVar25;\n            uVar17 = uVar25;\n            puVar13 = puVar12;\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar17);\n            pPVar8 = image->channel_map;\n          }" if (parenthesized_expression "(0 < (int)uVar25)" ( (binary_expression "0 < (int)uVar25" number_literal < (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            bVar1 = uVar10 < uVar25;\n            uVar17 = uVar25;\n            puVar13 = puVar12;\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar17);\n            pPVar8 = image->channel_map;\n          }" { (expression_statement "bVar1 = uVar10 < uVar25;" (assignment_expression "bVar1 = uVar10 < uVar25" identifier = (binary_expression "uVar10 < uVar25" identifier < identifier)) ;) (expression_statement "uVar17 = uVar25;" (assignment_expression "uVar17 = uVar25" identifier = identifier) ;) (expression_statement "puVar13 = puVar12;" (assignment_expression "puVar13 = puVar12" identifier = identifier) ;) (do_statement "do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar17);" do (compound_statement "{\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar18 = uVar25 - uVar17;\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar17 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar11;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar17;\n              puVar13 = puVar12;\n            }" { (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;) (if_statement "if (!bVar1) {\n                uVar11 = uVar17;\n              }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n                uVar11 = uVar17;\n              }" { (expression_statement "uVar11 = uVar17;" (assignment_expression "uVar11 = uVar17" identifier = identifier) ;) })) (expression_statement "uVar18 = uVar25 - uVar17;" (assignment_expression "uVar18 = uVar25 - uVar17" identifier = (binary_expression "uVar25 - uVar17" identifier - identifier)) ;) (expression_statement "uVar28 = 0x20 - uVar10;" (assignment_expression "uVar28 = 0x20 - uVar10" identifier = (binary_expression "0x20 - uVar10" number_literal - identifier)) ;) (expression_statement "uVar10 = uVar10 - uVar11;" (assignment_expression "uVar10 = uVar10 - uVar11" identifier = (binary_expression "uVar10 - uVar11" identifier - identifier)) ;) (expression_statement "uVar17 = uVar17 - uVar11;" (assignment_expression "uVar17 = uVar17 - uVar11" identifier = (binary_expression "uVar17 - uVar11" identifier - identifier)) ;) (expression_statement "uVar11 = (quantum_info->state).mask[uVar11];" (assignment_expression "uVar11 = (quantum_info->state).mask[uVar11]" identifier = (subscript_expression "(quantum_info->state).mask[uVar11]" (field_expression "(quantum_info->state).mask" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) [ identifier ])) ;) (expression_statement "(quantum_info->state).bits = uVar10;" (assignment_expression "(quantum_info->state).bits = uVar10" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;" (assignment_expression "uVar11 = (uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel" identifier = (binary_expression "(uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel" (binary_expression "(uVar9 >> (uVar18 & 0x1f) & uVar11) << (uVar28 & 0x1f)" (parenthesized_expression "(uVar9 >> (uVar18 & 0x1f) & uVar11)" ( (binary_expression "uVar9 >> (uVar18 & 0x1f) & uVar11" (binary_expression "uVar9 >> (uVar18 & 0x1f)" identifier >> (parenthesized_expression "(uVar18 & 0x1f)" ( (binary_expression "uVar18 & 0x1f" identifier & number_literal) ))) & identifier) )) << (parenthesized_expression "(uVar28 & 0x1f)" ( (binary_expression "uVar28 & 0x1f" identifier & number_literal) ))) | (field_expression "(quantum_info->state).pixel" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(quantum_info->state).pixel = uVar11;" (assignment_expression "(quantum_info->state).pixel = uVar11" (field_expression "(quantum_info->state).pixel" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (if_statement "if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar11 >> 0x18);\n                uVar14 = (undefined1)(uVar11 >> 0x10);\n                uVar6 = (undefined1)(uVar11 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }" { (expression_statement "puVar12 = puVar13 + 4;" (assignment_expression "puVar12 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) (expression_statement "uVar16 = (undefined1)(uVar11 >> 0x18);" (assignment_expression "uVar16 = (undefined1)(uVar11 >> 0x18)" identifier = (call_expression "(undefined1)(uVar11 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar11 >> 0x18)" ( (binary_expression "uVar11 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)(uVar11 >> 0x10);" (assignment_expression "uVar14 = (undefined1)(uVar11 >> 0x10)" identifier = (call_expression "(undefined1)(uVar11 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar11 >> 0x10)" ( (binary_expression "uVar11 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)(uVar11 >> 8);" (assignment_expression "uVar6 = (undefined1)(uVar11 >> 8)" identifier = (call_expression "(undefined1)(uVar11 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar11 >> 8)" ( (binary_expression "uVar11 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\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                  *puVar13 = (char)uVar11;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }" { (expression_statement "*puVar13 = (char)uVar11;" (assignment_expression "*puVar13 = (char)uVar11" (pointer_expression "*puVar13" * identifier) = (cast_expression "(char)uVar11" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar13[1] = uVar6;" (assignment_expression "puVar13[1] = uVar6" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[2] = uVar14;" (assignment_expression "puVar13[2] = uVar14" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = uVar16;" (assignment_expression "puVar13[3] = uVar16" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }" else (compound_statement "{\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar11;\n                }" { (expression_statement "*puVar13 = uVar16;" (assignment_expression "*puVar13 = uVar16" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "puVar13[1] = uVar14;" (assignment_expression "puVar13[1] = uVar14" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[2] = uVar6;" (assignment_expression "puVar13[2] = uVar6" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = (char)uVar11;" (assignment_expression "puVar13[3] = (char)uVar11" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = (cast_expression "(char)uVar11" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "uVar25 = quantum_info->depth;" (assignment_expression "uVar25 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (expression_statement "uVar10 = 0x20;" (assignment_expression "uVar10 = 0x20" identifier = number_literal) ;) (expression_statement "(quantum_info->state).pixel = 0;" (assignment_expression "(quantum_info->state).pixel = 0" (field_expression "(quantum_info->state).pixel" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(quantum_info->state).bits = 0x20;" (assignment_expression "(quantum_info->state).bits = 0x20" (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 "bVar1 = uVar10 < uVar17;" (assignment_expression "bVar1 = uVar10 < uVar17" identifier = (binary_expression "uVar10 < uVar17" identifier < identifier)) ;) (expression_statement "puVar13 = puVar12;" (assignment_expression "puVar13 = puVar12" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)uVar17)" ( (binary_expression "0 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) })) (expression_statement "fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + pPVar8[1].offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8[1].offset * 4)" ( (binary_expression "iVar26 + pPVar8[1].offset * 4" identifier + (binary_expression "pPVar8[1].offset * 4" (field_expression "pPVar8[1].offset" (subscript_expression "pPVar8[1]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(fVar42 <= 0.0)" ( (binary_expression "fVar42 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n            uVar9 = 0;\n          }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" else (compound_statement "{\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" { (expression_statement "dVar50 = ((double)fVar42 * dVar37) / dVar47;" (assignment_expression "dVar50 = ((double)fVar42 * dVar37) / dVar47" identifier = (binary_expression "((double)fVar42 * dVar37) / dVar47" (parenthesized_expression "((double)fVar42 * dVar37)" ( (binary_expression "(double)fVar42 * dVar37" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar50 < dVar45)" ( (binary_expression "dVar50 < dVar45" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_07;\n            }" { (expression_statement "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);" (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49)" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar50 + dVar49)" ( (binary_expression "dVar50 + dVar49" identifier + identifier) ))) ;) (expression_statement "uVar9 = extraout_v1_07;" (assignment_expression "uVar9 = extraout_v1_07" identifier = identifier) ;) }) (else_clause "else {\n              uVar9 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar9 = 0xffffffff;\n            }" { (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) }))) }))) (expression_statement "bVar1 = uVar10 < uVar25;" (assignment_expression "bVar1 = uVar10 < uVar25" identifier = (binary_expression "uVar10 < uVar25" identifier < identifier)) ;) (expression_statement "uVar17 = uVar25;" (assignment_expression "uVar17 = uVar25" identifier = identifier) ;) (expression_statement "puVar13 = puVar12;" (assignment_expression "puVar13 = puVar12" identifier = identifier) ;) (if_statement "if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }" if (parenthesized_expression "(0 < (int)uVar25)" ( (binary_expression "0 < (int)uVar25" number_literal < (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }" { (do_statement "do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            } while (0 < (int)uVar18);" do (compound_statement "{\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar13 = puVar12;\n              if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar12 = puVar13;\n            }" { (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;) (if_statement "if (!bVar1) {\n                uVar11 = uVar17;\n              }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n                uVar11 = uVar17;\n              }" { (expression_statement "uVar11 = uVar17;" (assignment_expression "uVar11 = uVar17" identifier = identifier) ;) })) (expression_statement "uVar28 = 0x20 - uVar10;" (assignment_expression "uVar28 = 0x20 - uVar10" identifier = (binary_expression "0x20 - uVar10" number_literal - identifier)) ;) (expression_statement "uVar10 = uVar10 - uVar11;" (assignment_expression "uVar10 = uVar10 - uVar11" identifier = (binary_expression "uVar10 - uVar11" identifier - identifier)) ;) (expression_statement "uVar18 = uVar17 - uVar11;" (assignment_expression "uVar18 = uVar17 - uVar11" identifier = (binary_expression "uVar17 - uVar11" identifier - identifier)) ;) (expression_statement "uVar11 = (quantum_info->state).mask[uVar11];" (assignment_expression "uVar11 = (quantum_info->state).mask[uVar11]" identifier = (subscript_expression "(quantum_info->state).mask[uVar11]" (field_expression "(quantum_info->state).mask" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) [ identifier ])) ;) (expression_statement "(quantum_info->state).bits = uVar10;" (assignment_expression "(quantum_info->state).bits = uVar10" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;" (assignment_expression "uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel" identifier = (binary_expression "(uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel" (binary_expression "(uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f)" (parenthesized_expression "(uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11)" ( (binary_expression "uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11" (binary_expression "uVar9 >> (uVar25 - uVar17 & 0x1f)" identifier >> (parenthesized_expression "(uVar25 - uVar17 & 0x1f)" ( (binary_expression "uVar25 - uVar17 & 0x1f" (binary_expression "uVar25 - uVar17" identifier - identifier) & number_literal) ))) & identifier) )) << (parenthesized_expression "(uVar28 & 0x1f)" ( (binary_expression "uVar28 & 0x1f" identifier & number_literal) ))) | (field_expression "(quantum_info->state).pixel" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(quantum_info->state).pixel = uVar17;" (assignment_expression "(quantum_info->state).pixel = uVar17" (field_expression "(quantum_info->state).pixel" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "puVar13 = puVar12;" (assignment_expression "puVar13 = puVar12" identifier = identifier) ;) (if_statement "if (uVar10 == 0) {\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar13 = puVar12 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }" { (expression_statement "puVar13 = puVar12 + 4;" (assignment_expression "puVar13 = puVar12 + 4" identifier = (binary_expression "puVar12 + 4" identifier + number_literal)) ;) (expression_statement "uVar16 = (undefined1)(uVar17 >> 0x18);" (assignment_expression "uVar16 = (undefined1)(uVar17 >> 0x18)" identifier = (call_expression "(undefined1)(uVar17 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar17 >> 0x18)" ( (binary_expression "uVar17 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)(uVar17 >> 0x10);" (assignment_expression "uVar14 = (undefined1)(uVar17 >> 0x10)" identifier = (call_expression "(undefined1)(uVar17 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar17 >> 0x10)" ( (binary_expression "uVar17 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)(uVar17 >> 8);" (assignment_expression "uVar6 = (undefined1)(uVar17 >> 8)" identifier = (call_expression "(undefined1)(uVar17 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar17 >> 8)" ( (binary_expression "uVar17 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }\n                else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\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                  *puVar12 = (char)uVar17;\n                  puVar12[1] = uVar6;\n                  puVar12[2] = uVar14;\n                  puVar12[3] = uVar16;\n                }" { (expression_statement "*puVar12 = (char)uVar17;" (assignment_expression "*puVar12 = (char)uVar17" (pointer_expression "*puVar12" * identifier) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar12[1] = uVar6;" (assignment_expression "puVar12[1] = uVar6" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = uVar14;" (assignment_expression "puVar12[2] = uVar14" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = uVar16;" (assignment_expression "puVar12[3] = uVar16" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }" else (compound_statement "{\n                  *puVar12 = uVar16;\n                  puVar12[1] = uVar14;\n                  puVar12[2] = uVar6;\n                  puVar12[3] = (char)uVar17;\n                }" { (expression_statement "*puVar12 = uVar16;" (assignment_expression "*puVar12 = uVar16" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "puVar12[1] = uVar14;" (assignment_expression "puVar12[1] = uVar14" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = uVar6;" (assignment_expression "puVar12[2] = uVar6" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = (char)uVar17;" (assignment_expression "puVar12[3] = (char)uVar17" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "uVar25 = quantum_info->depth;" (assignment_expression "uVar25 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (expression_statement "uVar10 = 0x20;" (assignment_expression "uVar10 = 0x20" identifier = number_literal) ;) (expression_statement "(quantum_info->state).pixel = 0;" (assignment_expression "(quantum_info->state).pixel = 0" (field_expression "(quantum_info->state).pixel" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(quantum_info->state).bits = 0x20;" (assignment_expression "(quantum_info->state).bits = 0x20" (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 "bVar1 = uVar10 < uVar18;" (assignment_expression "bVar1 = uVar10 < uVar18" identifier = (binary_expression "uVar10 < uVar18" identifier < identifier)) ;) (expression_statement "uVar17 = uVar18;" (assignment_expression "uVar17 = uVar18" identifier = identifier) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)uVar18)" ( (binary_expression "0 < (int)uVar18" number_literal < (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) })) (expression_statement "fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + pPVar8[2].offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8[2].offset * 4)" ( (binary_expression "iVar26 + pPVar8[2].offset * 4" identifier + (binary_expression "pPVar8[2].offset * 4" (field_expression "pPVar8[2].offset" (subscript_expression "pPVar8[2]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar42 <= 0.0) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(fVar42 <= 0.0)" ( (binary_expression "fVar42 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n            uVar9 = 0;\n          }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" else (compound_statement "{\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" { (expression_statement "dVar50 = ((double)fVar42 * dVar48) / dVar46;" (assignment_expression "dVar50 = ((double)fVar42 * dVar48) / dVar46" identifier = (binary_expression "((double)fVar42 * dVar48) / dVar46" (parenthesized_expression "((double)fVar42 * dVar48)" ( (binary_expression "(double)fVar42 * dVar48" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar50 < dVar45)" ( (binary_expression "dVar50 < dVar45" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_08;\n            }" { (expression_statement "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);" (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49)" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar50 + dVar49)" ( (binary_expression "dVar50 + dVar49" identifier + identifier) ))) ;) (expression_statement "uVar9 = extraout_v1_08;" (assignment_expression "uVar9 = extraout_v1_08" identifier = identifier) ;) }) (else_clause "else {\n              uVar9 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar9 = 0xffffffff;\n            }" { (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) }))) }))) (expression_statement "bVar1 = uVar10 < uVar25;" (assignment_expression "bVar1 = uVar10 < uVar25" identifier = (binary_expression "uVar10 < uVar25" identifier < identifier)) ;) (expression_statement "uVar17 = uVar25;" (assignment_expression "uVar17 = uVar25" identifier = identifier) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (if_statement "if (0 < (int)uVar25) {\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }" if (parenthesized_expression "(0 < (int)uVar25)" ( (binary_expression "0 < (int)uVar25" number_literal < (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar18);\n            pPVar8 = image->channel_map;\n          }" { (do_statement "do {\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            } while (0 < (int)uVar18);" do (compound_statement "{\n              uVar11 = uVar10;\n              if (!bVar1) {\n                uVar11 = uVar17;\n              }\n              uVar28 = 0x20 - uVar10;\n              uVar10 = uVar10 - uVar11;\n              uVar18 = uVar17 - uVar11;\n              uVar11 = (quantum_info->state).mask[uVar11];\n              (quantum_info->state).bits = uVar10;\n              uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar17;\n              puVar12 = puVar13;\n              if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              bVar1 = uVar10 < uVar18;\n              uVar17 = uVar18;\n              puVar13 = puVar12;\n            }" { (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;) (if_statement "if (!bVar1) {\n                uVar11 = uVar17;\n              }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n                uVar11 = uVar17;\n              }" { (expression_statement "uVar11 = uVar17;" (assignment_expression "uVar11 = uVar17" identifier = identifier) ;) })) (expression_statement "uVar28 = 0x20 - uVar10;" (assignment_expression "uVar28 = 0x20 - uVar10" identifier = (binary_expression "0x20 - uVar10" number_literal - identifier)) ;) (expression_statement "uVar10 = uVar10 - uVar11;" (assignment_expression "uVar10 = uVar10 - uVar11" identifier = (binary_expression "uVar10 - uVar11" identifier - identifier)) ;) (expression_statement "uVar18 = uVar17 - uVar11;" (assignment_expression "uVar18 = uVar17 - uVar11" identifier = (binary_expression "uVar17 - uVar11" identifier - identifier)) ;) (expression_statement "uVar11 = (quantum_info->state).mask[uVar11];" (assignment_expression "uVar11 = (quantum_info->state).mask[uVar11]" identifier = (subscript_expression "(quantum_info->state).mask[uVar11]" (field_expression "(quantum_info->state).mask" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) [ identifier ])) ;) (expression_statement "(quantum_info->state).bits = uVar10;" (assignment_expression "(quantum_info->state).bits = uVar10" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel;" (assignment_expression "uVar17 = (uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel" identifier = (binary_expression "(uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f) |\n                       (quantum_info->state).pixel" (binary_expression "(uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11) << (uVar28 & 0x1f)" (parenthesized_expression "(uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11)" ( (binary_expression "uVar9 >> (uVar25 - uVar17 & 0x1f) & uVar11" (binary_expression "uVar9 >> (uVar25 - uVar17 & 0x1f)" identifier >> (parenthesized_expression "(uVar25 - uVar17 & 0x1f)" ( (binary_expression "uVar25 - uVar17 & 0x1f" (binary_expression "uVar25 - uVar17" identifier - identifier) & number_literal) ))) & identifier) )) << (parenthesized_expression "(uVar28 & 0x1f)" ( (binary_expression "uVar28 & 0x1f" identifier & number_literal) ))) | (field_expression "(quantum_info->state).pixel" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(quantum_info->state).pixel = uVar17;" (assignment_expression "(quantum_info->state).pixel = uVar17" (field_expression "(quantum_info->state).pixel" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (if_statement "if (uVar10 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar17 >> 0x18);\n                uVar14 = (undefined1)(uVar17 >> 0x10);\n                uVar6 = (undefined1)(uVar17 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }\n                uVar25 = quantum_info->depth;\n                uVar10 = 0x20;\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }" { (expression_statement "puVar12 = puVar13 + 4;" (assignment_expression "puVar12 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) (expression_statement "uVar16 = (undefined1)(uVar17 >> 0x18);" (assignment_expression "uVar16 = (undefined1)(uVar17 >> 0x18)" identifier = (call_expression "(undefined1)(uVar17 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar17 >> 0x18)" ( (binary_expression "uVar17 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)(uVar17 >> 0x10);" (assignment_expression "uVar14 = (undefined1)(uVar17 >> 0x10)" identifier = (call_expression "(undefined1)(uVar17 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar17 >> 0x10)" ( (binary_expression "uVar17 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)(uVar17 >> 8);" (assignment_expression "uVar6 = (undefined1)(uVar17 >> 8)" identifier = (call_expression "(undefined1)(uVar17 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar17 >> 8)" ( (binary_expression "uVar17 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\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                  *puVar13 = (char)uVar17;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }" { (expression_statement "*puVar13 = (char)uVar17;" (assignment_expression "*puVar13 = (char)uVar17" (pointer_expression "*puVar13" * identifier) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar13[1] = uVar6;" (assignment_expression "puVar13[1] = uVar6" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[2] = uVar14;" (assignment_expression "puVar13[2] = uVar14" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = uVar16;" (assignment_expression "puVar13[3] = uVar16" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }" else (compound_statement "{\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar17;\n                }" { (expression_statement "*puVar13 = uVar16;" (assignment_expression "*puVar13 = uVar16" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "puVar13[1] = uVar14;" (assignment_expression "puVar13[1] = uVar14" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[2] = uVar6;" (assignment_expression "puVar13[2] = uVar6" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = (char)uVar17;" (assignment_expression "puVar13[3] = (char)uVar17" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "uVar25 = quantum_info->depth;" (assignment_expression "uVar25 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (expression_statement "uVar10 = 0x20;" (assignment_expression "uVar10 = 0x20" identifier = number_literal) ;) (expression_statement "(quantum_info->state).pixel = 0;" (assignment_expression "(quantum_info->state).pixel = 0" (field_expression "(quantum_info->state).pixel" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(quantum_info->state).bits = 0x20;" (assignment_expression "(quantum_info->state).bits = 0x20" (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 "bVar1 = uVar10 < uVar18;" (assignment_expression "bVar1 = uVar10 < uVar18" identifier = (binary_expression "uVar10 < uVar18" identifier < identifier)) ;) (expression_statement "uVar17 = uVar18;" (assignment_expression "uVar17 = uVar18" identifier = identifier) ;) (expression_statement "puVar13 = puVar12;" (assignment_expression "puVar13 = puVar12" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)uVar18)" ( (binary_expression "0 < (int)uVar18" number_literal < (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) })) (if_statement "if ((pPVar8[4].traits != BlendPixelTrait) ||\n             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)) {\n            uVar9 = 0;\n          }\n          else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "((pPVar8[4].traits != BlendPixelTrait) ||\n             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0))" ( (binary_expression "(pPVar8[4].traits != BlendPixelTrait) ||\n             (fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)" (parenthesized_expression "(pPVar8[4].traits != BlendPixelTrait)" ( (binary_expression "pPVar8[4].traits != BlendPixelTrait" (field_expression "pPVar8[4].traits" (subscript_expression "pPVar8[4]" identifier [ number_literal ]) . field_identifier) != identifier) )) || (parenthesized_expression "(fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0)" ( (comma_expression "fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4), fVar42 <= 0.0" (assignment_expression "fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4)" identifier = (binary_expression "fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4)" identifier - (pointer_expression "*(float *)(iVar26 + pPVar8[4].offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8[4].offset * 4)" ( (binary_expression "iVar26 + pPVar8[4].offset * 4" identifier + (binary_expression "pPVar8[4].offset * 4" (field_expression "pPVar8[4].offset" (subscript_expression "pPVar8[4]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))))) , (binary_expression "fVar42 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n            uVar9 = 0;\n          }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" else (compound_statement "{\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" { (expression_statement "dVar50 = ((double)fVar42 * dVar48) / dVar46;" (assignment_expression "dVar50 = ((double)fVar42 * dVar48) / dVar46" identifier = (binary_expression "((double)fVar42 * dVar48) / dVar46" (parenthesized_expression "((double)fVar42 * dVar48)" ( (binary_expression "(double)fVar42 * dVar48" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar50 < dVar45)" ( (binary_expression "dVar50 < dVar45" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_09;\n            }" { (expression_statement "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));" (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400))" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar50 + *(double *)(puVar2 + 0x1400))" ( (binary_expression "dVar50 + *(double *)(puVar2 + 0x1400)" identifier + (pointer_expression "*(double *)(puVar2 + 0x1400)" * (cast_expression "(double *)(puVar2 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1400)" ( (binary_expression "puVar2 + 0x1400" identifier + number_literal) ))))) ))) ;) (expression_statement "uVar9 = extraout_v1_09;" (assignment_expression "uVar9 = extraout_v1_09" identifier = identifier) ;) }) (else_clause "else {\n              uVar9 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar9 = 0xffffffff;\n            }" { (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) }))) }))) (expression_statement "uVar10 = uVar25;" (assignment_expression "uVar10 = uVar25" identifier = identifier) ;) (expression_statement "puVar13 = puVar12;" (assignment_expression "puVar13 = puVar12" identifier = identifier) ;) (if_statement "if (0 < (int)uVar25) {\n            while( true ) {\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }\n          }" if (parenthesized_expression "(0 < (int)uVar25)" ( (binary_expression "0 < (int)uVar25" number_literal < (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            while( true ) {\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }\n          }" { (while_statement "while( true ) {\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar11 = (quantum_info->state).bits;\n              uVar17 = uVar11;\n              if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }\n              uVar28 = (quantum_info->state).mask[uVar17];\n              (quantum_info->state).bits = uVar11 - uVar17;\n              uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;\n              (quantum_info->state).pixel = uVar25;\n              puVar12 = puVar13;\n              if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }\n              if ((int)(uVar10 - uVar17) < 1) break;\n              uVar25 = quantum_info->depth;\n              uVar10 = uVar10 - uVar17;\n              puVar13 = puVar12;\n            }" { (expression_statement "uVar11 = (quantum_info->state).bits;" (assignment_expression "uVar11 = (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 "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) (if_statement "if (uVar10 <= uVar11) {\n                uVar17 = uVar10;\n              }" if (parenthesized_expression "(uVar10 <= uVar11)" ( (binary_expression "uVar10 <= uVar11" identifier <= identifier) )) (compound_statement "{\n                uVar17 = uVar10;\n              }" { (expression_statement "uVar17 = uVar10;" (assignment_expression "uVar17 = uVar10" identifier = identifier) ;) })) (expression_statement "uVar28 = (quantum_info->state).mask[uVar17];" (assignment_expression "uVar28 = (quantum_info->state).mask[uVar17]" identifier = (subscript_expression "(quantum_info->state).mask[uVar17]" (field_expression "(quantum_info->state).mask" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) [ identifier ])) ;) (expression_statement "(quantum_info->state).bits = uVar11 - uVar17;" (assignment_expression "(quantum_info->state).bits = uVar11 - uVar17" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel;" (assignment_expression "uVar25 = (uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel" identifier = (binary_expression "(uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f) |\n                       (quantum_info->state).pixel" (binary_expression "(uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28) << (0x20 - uVar11 & 0x1f)" (parenthesized_expression "(uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28)" ( (binary_expression "uVar9 >> (uVar25 - uVar10 & 0x1f) & uVar28" (binary_expression "uVar9 >> (uVar25 - uVar10 & 0x1f)" identifier >> (parenthesized_expression "(uVar25 - uVar10 & 0x1f)" ( (binary_expression "uVar25 - uVar10 & 0x1f" (binary_expression "uVar25 - uVar10" identifier - identifier) & number_literal) ))) & identifier) )) << (parenthesized_expression "(0x20 - uVar11 & 0x1f)" ( (binary_expression "0x20 - uVar11 & 0x1f" (binary_expression "0x20 - uVar11" number_literal - identifier) & number_literal) ))) | (field_expression "(quantum_info->state).pixel" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(quantum_info->state).pixel = uVar25;" (assignment_expression "(quantum_info->state).pixel = uVar25" (field_expression "(quantum_info->state).pixel" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (if_statement "if (uVar11 - uVar17 == 0) {\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }" if (parenthesized_expression "(uVar11 - uVar17 == 0)" ( (binary_expression "uVar11 - uVar17 == 0" (binary_expression "uVar11 - uVar17" identifier - identifier) == number_literal) )) (compound_statement "{\n                puVar12 = puVar13 + 4;\n                uVar16 = (undefined1)(uVar25 >> 0x18);\n                uVar14 = (undefined1)(uVar25 >> 0x10);\n                uVar6 = (undefined1)(uVar25 >> 8);\n                if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }\n                (quantum_info->state).pixel = 0;\n                (quantum_info->state).bits = 0x20;\n              }" { (expression_statement "puVar12 = puVar13 + 4;" (assignment_expression "puVar12 = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) (expression_statement "uVar16 = (undefined1)(uVar25 >> 0x18);" (assignment_expression "uVar16 = (undefined1)(uVar25 >> 0x18)" identifier = (call_expression "(undefined1)(uVar25 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 0x18)" ( (binary_expression "uVar25 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)(uVar25 >> 0x10);" (assignment_expression "uVar14 = (undefined1)(uVar25 >> 0x10)" identifier = (call_expression "(undefined1)(uVar25 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 0x10)" ( (binary_expression "uVar25 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)(uVar25 >> 8);" (assignment_expression "uVar6 = (undefined1)(uVar25 >> 8)" identifier = (call_expression "(undefined1)(uVar25 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 8)" ( (binary_expression "uVar25 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }\n                else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\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                  *puVar13 = (char)uVar25;\n                  puVar13[1] = uVar6;\n                  puVar13[2] = uVar14;\n                  puVar13[3] = uVar16;\n                }" { (expression_statement "*puVar13 = (char)uVar25;" (assignment_expression "*puVar13 = (char)uVar25" (pointer_expression "*puVar13" * identifier) = (cast_expression "(char)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "puVar13[1] = uVar6;" (assignment_expression "puVar13[1] = uVar6" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[2] = uVar14;" (assignment_expression "puVar13[2] = uVar14" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = uVar16;" (assignment_expression "puVar13[3] = uVar16" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }" else (compound_statement "{\n                  *puVar13 = uVar16;\n                  puVar13[1] = uVar14;\n                  puVar13[2] = uVar6;\n                  puVar13[3] = (char)uVar25;\n                }" { (expression_statement "*puVar13 = uVar16;" (assignment_expression "*puVar13 = uVar16" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "puVar13[1] = uVar14;" (assignment_expression "puVar13[1] = uVar14" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[2] = uVar6;" (assignment_expression "puVar13[2] = uVar6" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[3] = (char)uVar25;" (assignment_expression "puVar13[3] = (char)uVar25" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = (cast_expression "(char)uVar25" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (expression_statement "(quantum_info->state).pixel = 0;" (assignment_expression "(quantum_info->state).pixel = 0" (field_expression "(quantum_info->state).pixel" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(quantum_info->state).bits = 0x20;" (assignment_expression "(quantum_info->state).bits = 0x20" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) (if_statement "if ((int)(uVar10 - uVar17) < 1) break;" if (parenthesized_expression "((int)(uVar10 - uVar17) < 1)" ( (binary_expression "(int)(uVar10 - uVar17) < 1" (cast_expression "(int)(uVar10 - uVar17)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar10 - uVar17)" ( (binary_expression "uVar10 - uVar17" identifier - identifier) ))) < number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar25 = quantum_info->depth;" (assignment_expression "uVar25 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (expression_statement "uVar10 = uVar10 - uVar17;" (assignment_expression "uVar10 = uVar10 - uVar17" identifier = (binary_expression "uVar10 - uVar17" identifier - identifier)) ;) (expression_statement "puVar13 = puVar12;" (assignment_expression "puVar13 = puVar12" identifier = identifier) ;) })) })) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (expression_statement "number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad);" (assignment_expression "number_pixels = CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad)" identifier = (call_expression "CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad)" identifier (argument_list "(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad)" ( (binary_expression "iVar26 + image->number_channels * 4" identifier + (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal)) , (binary_expression "puVar12 + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) )))) ;) (if_statement "if (puVar29 == q) break;" if (parenthesized_expression "(puVar29 == q)" ( (binary_expression "puVar29 == q" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar25 = quantum_info->depth;" (assignment_expression "uVar25 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) })) (return_statement "return;" return ;) })) (if_statement "if ((int)q < 1) {\n        return;\n      }" if (parenthesized_expression "((int)q < 1)" ( (binary_expression "(int)q < 1" (cast_expression "(int)q" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "puVar29 = (uchar *)0x0;" (assignment_expression "puVar29 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538);" (assignment_expression "dVar48 = *(double *)(PTR_s_courses_003a88ec + -0x7538)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x7538)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x7538)" ( (binary_expression "PTR_s_courses_003a88ec + -0x7538" identifier + number_literal) ))))) ;) (expression_statement "dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar49 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar46 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = 10;" (assignment_expression "uVar25 = 10" identifier = number_literal) ;) (expression_statement "dVar33 = dVar45;" (assignment_expression "dVar33 = dVar45" identifier = identifier) ;) (expression_statement "dVar34 = dVar46;" (assignment_expression "dVar34 = dVar46" identifier = identifier) ;) (expression_statement "dVar35 = dVar48;" (assignment_expression "dVar35 = dVar48" identifier = identifier) ;) (expression_statement "dVar36 = dVar49;" (assignment_expression "dVar36 = dVar49" identifier = identifier) ;) (expression_statement "dVar37 = dVar48;" (assignment_expression "dVar37 = dVar48" identifier = identifier) ;) (expression_statement "dVar47 = dVar46;" (assignment_expression "dVar47 = dVar46" identifier = identifier) ;) (do_statement "do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        pbVar31 = (byte *)number_pixels;\n        pPVar8 = image->channel_map;\n        fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n        if (NAN(fVar42)) {\n          uVar9 = 0;\n        }\n        else {\n          uVar9 = 0;\n          if (0.0 < fVar42) {\n            dVar50 = ((double)fVar42 * dVar35) / dVar34;\n            if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n        }\n        sVar27 = (quantum_info->state).bits;\n        if (sVar27 == 0) {\n          sVar27 = 8;\n          (quantum_info->state).bits = 8;\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166458;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_00166434:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cbc:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166550;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016652c:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cb4:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          uVar10 = 0;\n          uVar9 = uVar25;\n          if (pPVar8[4].traits == BlendPixelTrait) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016662c:\n          pPVar8 = image->channel_map;\n          uVar25 = quantum_info->depth;\n          if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n            if (fVar42 <= 0.0) goto LAB_00166640;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar10 = 0;\n          }\n          uVar9 = uVar25;\n          if (sVar27 == 0) {\n            (quantum_info->state).bits = 8;\n          }\n        }\n        while (0 < (int)uVar9) {\n          uVar11 = (quantum_info->state).bits;\n          uVar17 = uVar11;\n          if (uVar25 <= uVar11) {\n            uVar17 = uVar25;\n          }\n          uVar9 = uVar25 - uVar17;\n          uVar25 = uVar9;\n          if ((int)uVar9 < 0) {\n            uVar25 = 0;\n          }\n          if (uVar11 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar28 = uVar10 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar28 = 0;\n          }\n          uVar11 = uVar11 - uVar17;\n          (quantum_info->state).bits = uVar11;\n          bVar15 = (byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f));\n          if ((uVar11 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar11 == 0) {\n            pbVar31 = pbVar31 + 1;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels = CONCAT44(iVar26 + image->number_channels * 4,pbVar31 + quantum_info->pad);\n        if (puVar29 == q) {\n          return;\n        }\n        uVar25 = quantum_info->depth;\n      } while( true );" do (compound_statement "{\n        iVar26 = (int)(number_pixels >> 0x20);\n        pbVar31 = (byte *)number_pixels;\n        pPVar8 = image->channel_map;\n        fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n        if (NAN(fVar42)) {\n          uVar9 = 0;\n        }\n        else {\n          uVar9 = 0;\n          if (0.0 < fVar42) {\n            dVar50 = ((double)fVar42 * dVar35) / dVar34;\n            if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n        }\n        sVar27 = (quantum_info->state).bits;\n        if (sVar27 == 0) {\n          sVar27 = 8;\n          (quantum_info->state).bits = 8;\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166458;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_00166434:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cbc:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166550;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016652c:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cb4:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        if ((int)uVar25 < 1) {\n          uVar10 = 0;\n          uVar9 = uVar25;\n          if (pPVar8[4].traits == BlendPixelTrait) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016662c:\n          pPVar8 = image->channel_map;\n          uVar25 = quantum_info->depth;\n          if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n            if (fVar42 <= 0.0) goto LAB_00166640;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar10 = 0;\n          }\n          uVar9 = uVar25;\n          if (sVar27 == 0) {\n            (quantum_info->state).bits = 8;\n          }\n        }\n        while (0 < (int)uVar9) {\n          uVar11 = (quantum_info->state).bits;\n          uVar17 = uVar11;\n          if (uVar25 <= uVar11) {\n            uVar17 = uVar25;\n          }\n          uVar9 = uVar25 - uVar17;\n          uVar25 = uVar9;\n          if ((int)uVar9 < 0) {\n            uVar25 = 0;\n          }\n          if (uVar11 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar28 = uVar10 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar28 = 0;\n          }\n          uVar11 = uVar11 - uVar17;\n          (quantum_info->state).bits = uVar11;\n          bVar15 = (byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f));\n          if ((uVar11 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar11 == 0) {\n            pbVar31 = pbVar31 + 1;\n            (quantum_info->state).bits = 8;\n          }\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels = CONCAT44(iVar26 + image->number_channels * 4,pbVar31 + quantum_info->pad);\n        if (puVar29 == q) {\n          return;\n        }\n        uVar25 = quantum_info->depth;\n      }" { (expression_statement "iVar26 = (int)(number_pixels >> 0x20);" (assignment_expression "iVar26 = (int)(number_pixels >> 0x20)" identifier = (cast_expression "(int)(number_pixels >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(number_pixels >> 0x20)" ( (binary_expression "number_pixels >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "pbVar31 = (byte *)number_pixels;" (assignment_expression "pbVar31 = (byte *)number_pixels" identifier = (cast_expression "(byte *)number_pixels" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + pPVar8->offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + pPVar8->offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8->offset * 4)" ( (binary_expression "iVar26 + pPVar8->offset * 4" identifier + (binary_expression "pPVar8->offset * 4" (field_expression "pPVar8->offset" identifier -> field_identifier) * number_literal)) ))))) ;) (if_statement "if (NAN(fVar42)) {\n          uVar9 = 0;\n        }\n        else {\n          uVar9 = 0;\n          if (0.0 < fVar42) {\n            dVar50 = ((double)fVar42 * dVar35) / dVar34;\n            if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n        }" if (parenthesized_expression "(NAN(fVar42))" ( (call_expression "NAN(fVar42)" identifier (argument_list "(fVar42)" ( identifier ))) )) (compound_statement "{\n          uVar9 = 0;\n        }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          uVar9 = 0;\n          if (0.0 < fVar42) {\n            dVar50 = ((double)fVar42 * dVar35) / dVar34;\n            if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n        }" else (compound_statement "{\n          uVar9 = 0;\n          if (0.0 < fVar42) {\n            dVar50 = ((double)fVar42 * dVar35) / dVar34;\n            if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n        }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar42) {\n            dVar50 = ((double)fVar42 * dVar35) / dVar34;\n            if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(0.0 < fVar42)" ( (binary_expression "0.0 < fVar42" number_literal < identifier) )) (compound_statement "{\n            dVar50 = ((double)fVar42 * dVar35) / dVar34;\n            if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" { (expression_statement "dVar50 = ((double)fVar42 * dVar35) / dVar34;" (assignment_expression "dVar50 = ((double)fVar42 * dVar35) / dVar34" identifier = (binary_expression "((double)fVar42 * dVar35) / dVar34" (parenthesized_expression "((double)fVar42 * dVar35)" ( (binary_expression "(double)fVar42 * dVar35" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar50 < dVar33) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar50 < dVar33)" ( (binary_expression "dVar50 < dVar33" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);\n              uVar9 = extraout_v1_02;\n            }" { (expression_statement "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36);" (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar36)" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar50 + dVar36)" ( (binary_expression "dVar50 + dVar36" identifier + identifier) ))) ;) (expression_statement "uVar9 = extraout_v1_02;" (assignment_expression "uVar9 = extraout_v1_02" identifier = identifier) ;) }) (else_clause "else {\n              uVar9 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar9 = 0xffffffff;\n            }" { (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) }))) })) }))) (expression_statement "sVar27 = (quantum_info->state).bits;" (assignment_expression "sVar27 = (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 (sVar27 == 0) {\n          sVar27 = 8;\n          (quantum_info->state).bits = 8;\n        }" if (parenthesized_expression "(sVar27 == 0)" ( (binary_expression "sVar27 == 0" identifier == number_literal) )) (compound_statement "{\n          sVar27 = 8;\n          (quantum_info->state).bits = 8;\n        }" { (expression_statement "sVar27 = 8;" (assignment_expression "sVar27 = 8" 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) ;) })) (if_statement "if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166458;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_00166434:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cbc:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }" if (parenthesized_expression "((int)uVar25 < 1)" ( (binary_expression "(int)uVar25 < 1" (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166458;\n          uVar9 = 0;\n        }" { (expression_statement "fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + pPVar8[1].offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8[1].offset * 4)" ( (binary_expression "iVar26 + pPVar8[1].offset * 4" identifier + (binary_expression "pPVar8[1].offset * 4" (field_expression "pPVar8[1].offset" (subscript_expression "pPVar8[1]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (if_statement "if (!NAN(fVar42)) goto LAB_00166458;" if (parenthesized_expression "(!NAN(fVar42))" ( (unary_expression "!NAN(fVar42)" ! (call_expression "NAN(fVar42)" identifier (argument_list "(fVar42)" ( identifier )))) )) (goto_statement "goto LAB_00166458;" goto statement_identifier ;)) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_00166434:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cbc:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }" else (compound_statement "{\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_00166434:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cbc:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }" { (do_statement "do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);" do (compound_statement "{\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }\n            sVar27 = (quantum_info->state).bits;\n          }" { (while_statement "while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_00166434;\n            }" { (expression_statement "uVar10 = sVar27;" (assignment_expression "uVar10 = sVar27" identifier = identifier) ;) (if_statement "if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }" if (parenthesized_expression "(uVar25 <= sVar27)" ( (binary_expression "uVar25 <= sVar27" identifier <= identifier) )) (compound_statement "{\n                uVar10 = uVar25;\n              }" { (expression_statement "uVar10 = uVar25;" (assignment_expression "uVar10 = uVar25" identifier = identifier) ;) })) (expression_statement "uVar17 = uVar25 - uVar10;" (assignment_expression "uVar17 = uVar25 - uVar10" identifier = (binary_expression "uVar25 - uVar10" identifier - identifier)) ;) (expression_statement "uVar25 = uVar17;" (assignment_expression "uVar25 = uVar17" identifier = identifier) ;) (if_statement "if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }" if (parenthesized_expression "((int)uVar17 < 0)" ( (binary_expression "(int)uVar17 < 0" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                uVar25 = 0;\n              }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) })) (if_statement "if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }" if (parenthesized_expression "(sVar27 == 8)" ( (binary_expression "sVar27 == 8" identifier == number_literal) )) (compound_statement "{\n                *pbVar31 = 0;\n              }" { (expression_statement "*pbVar31 = 0;" (assignment_expression "*pbVar31 = 0" (pointer_expression "*pbVar31" * identifier) = number_literal) ;) })) (expression_statement "uVar11 = uVar9 >> (uVar25 & 0x1f);" (assignment_expression "uVar11 = uVar9 >> (uVar25 & 0x1f)" identifier = (binary_expression "uVar9 >> (uVar25 & 0x1f)" identifier >> (parenthesized_expression "(uVar25 & 0x1f)" ( (binary_expression "uVar25 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }" if (parenthesized_expression "((uVar25 & 0x20) != 0)" ( (binary_expression "(uVar25 & 0x20) != 0" (parenthesized_expression "(uVar25 & 0x20)" ( (binary_expression "uVar25 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar11 = 0;\n              }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) })) (expression_statement "uVar28 = sVar27 - uVar10;" (assignment_expression "uVar28 = sVar27 - uVar10" identifier = (binary_expression "sVar27 - uVar10" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar28;" (assignment_expression "(quantum_info->state).bits = uVar28" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));" (assignment_expression "bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" ( (binary_expression "(~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar10 & 0x1f)) & uVar11)" ( (binary_expression "~(-1 << (uVar10 & 0x1f)) & uVar11" (unary_expression "~(-1 << (uVar10 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar10 & 0x1f))" ( (binary_expression "-1 << (uVar10 & 0x1f)" number_literal << (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar28 & 0x1f)" ( (binary_expression "uVar28 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }" if (parenthesized_expression "((uVar28 & 0x20) != 0)" ( (binary_expression "(uVar28 & 0x20) != 0" (parenthesized_expression "(uVar28 & 0x20)" ( (binary_expression "uVar28 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                bVar15 = 0;\n              }" { (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) })) (expression_statement "*pbVar31 = bVar15 | *pbVar31;" (assignment_expression "*pbVar31 = bVar15 | *pbVar31" (pointer_expression "*pbVar31" * identifier) = (binary_expression "bVar15 | *pbVar31" identifier | (pointer_expression "*pbVar31" * identifier))) ;) (if_statement "if (uVar28 != 0) break;" if (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 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 "sVar27 = 8;" (assignment_expression "sVar27 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar17 < 1) goto LAB_00166434;" if (parenthesized_expression "((int)uVar17 < 1)" ( (binary_expression "(int)uVar17 < 1" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00166434;" goto statement_identifier ;)) })) (expression_statement "sVar27 = (quantum_info->state).bits;" (assignment_expression "sVar27 = (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)uVar17)" ( (binary_expression "0 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_00166434:\n          pPVar8 = image->channel_map;" statement_identifier : (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;)) (expression_statement "fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + pPVar8[1].offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8[1].offset * 4)" ( (binary_expression "iVar26 + pPVar8[1].offset * 4" identifier + (binary_expression "pPVar8[1].offset * 4" (field_expression "pPVar8[1].offset" (subscript_expression "pPVar8[1]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (expression_statement "uVar25 = quantum_info->depth;" (assignment_expression "uVar25 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (NAN(fVar42)) {\nLAB_00166cbc:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(NAN(fVar42))" ( (call_expression "NAN(fVar42)" identifier (argument_list "(fVar42)" ( identifier ))) )) (compound_statement "{\nLAB_00166cbc:\n            uVar9 = 0;\n          }" { (labeled_statement "LAB_00166cbc:\n            uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" else (compound_statement "{\nLAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;\n            dVar50 = ((double)fVar42 * dVar37) / dVar47;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" { (labeled_statement "LAB_00166458:\n            if (fVar42 <= 0.0) goto LAB_00166cbc;" statement_identifier : (if_statement "if (fVar42 <= 0.0) goto LAB_00166cbc;" if (parenthesized_expression "(fVar42 <= 0.0)" ( (binary_expression "fVar42 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00166cbc;" goto statement_identifier ;))) (expression_statement "dVar50 = ((double)fVar42 * dVar37) / dVar47;" (assignment_expression "dVar50 = ((double)fVar42 * dVar37) / dVar47" identifier = (binary_expression "((double)fVar42 * dVar37) / dVar47" (parenthesized_expression "((double)fVar42 * dVar37)" ( (binary_expression "(double)fVar42 * dVar37" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar50 < dVar45)" ( (binary_expression "dVar50 < dVar45" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_03;\n            }" { (expression_statement "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);" (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49)" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar50 + dVar49)" ( (binary_expression "dVar50 + dVar49" identifier + identifier) ))) ;) (expression_statement "uVar9 = extraout_v1_03;" (assignment_expression "uVar9 = extraout_v1_03" identifier = identifier) ;) }) (else_clause "else {\n              uVar9 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar9 = 0xffffffff;\n            }" { (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) }))) }))) (if_statement "if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }" if (parenthesized_expression "(sVar27 == 0)" ( (binary_expression "sVar27 == 0" identifier == number_literal) )) (compound_statement "{\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }" { (expression_statement "sVar27 = 8;" (assignment_expression "sVar27 = 8" 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) ;) })) }))) (if_statement "if ((int)uVar25 < 1) {\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166550;\n          uVar9 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016652c:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cb4:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }" if (parenthesized_expression "((int)uVar25 < 1)" ( (binary_expression "(int)uVar25 < 1" (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          if (!NAN(fVar42)) goto LAB_00166550;\n          uVar9 = 0;\n        }" { (expression_statement "fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + pPVar8[2].offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8[2].offset * 4)" ( (binary_expression "iVar26 + pPVar8[2].offset * 4" identifier + (binary_expression "pPVar8[2].offset * 4" (field_expression "pPVar8[2].offset" (subscript_expression "pPVar8[2]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (if_statement "if (!NAN(fVar42)) goto LAB_00166550;" if (parenthesized_expression "(!NAN(fVar42))" ( (unary_expression "!NAN(fVar42)" ! (call_expression "NAN(fVar42)" identifier (argument_list "(fVar42)" ( identifier )))) )) (goto_statement "goto LAB_00166550;" goto statement_identifier ;)) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016652c:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cb4:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }" else (compound_statement "{\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016652c:\n          pPVar8 = image->channel_map;\n          fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n          uVar25 = quantum_info->depth;\n          if (NAN(fVar42)) {\nLAB_00166cb4:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }\n        }" { (do_statement "do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);" do (compound_statement "{\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          }" { (while_statement "while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016652c;\n            }" { (expression_statement "uVar10 = sVar27;" (assignment_expression "uVar10 = sVar27" identifier = identifier) ;) (if_statement "if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }" if (parenthesized_expression "(uVar25 <= sVar27)" ( (binary_expression "uVar25 <= sVar27" identifier <= identifier) )) (compound_statement "{\n                uVar10 = uVar25;\n              }" { (expression_statement "uVar10 = uVar25;" (assignment_expression "uVar10 = uVar25" identifier = identifier) ;) })) (expression_statement "uVar17 = uVar25 - uVar10;" (assignment_expression "uVar17 = uVar25 - uVar10" identifier = (binary_expression "uVar25 - uVar10" identifier - identifier)) ;) (expression_statement "uVar25 = uVar17;" (assignment_expression "uVar25 = uVar17" identifier = identifier) ;) (if_statement "if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }" if (parenthesized_expression "((int)uVar17 < 0)" ( (binary_expression "(int)uVar17 < 0" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                uVar25 = 0;\n              }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) })) (if_statement "if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }" if (parenthesized_expression "(sVar27 == 8)" ( (binary_expression "sVar27 == 8" identifier == number_literal) )) (compound_statement "{\n                *pbVar31 = 0;\n              }" { (expression_statement "*pbVar31 = 0;" (assignment_expression "*pbVar31 = 0" (pointer_expression "*pbVar31" * identifier) = number_literal) ;) })) (expression_statement "uVar11 = uVar9 >> (uVar25 & 0x1f);" (assignment_expression "uVar11 = uVar9 >> (uVar25 & 0x1f)" identifier = (binary_expression "uVar9 >> (uVar25 & 0x1f)" identifier >> (parenthesized_expression "(uVar25 & 0x1f)" ( (binary_expression "uVar25 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }" if (parenthesized_expression "((uVar25 & 0x20) != 0)" ( (binary_expression "(uVar25 & 0x20) != 0" (parenthesized_expression "(uVar25 & 0x20)" ( (binary_expression "uVar25 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar11 = 0;\n              }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) })) (expression_statement "uVar28 = sVar27 - uVar10;" (assignment_expression "uVar28 = sVar27 - uVar10" identifier = (binary_expression "sVar27 - uVar10" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar28;" (assignment_expression "(quantum_info->state).bits = uVar28" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));" (assignment_expression "bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" ( (binary_expression "(~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar10 & 0x1f)) & uVar11)" ( (binary_expression "~(-1 << (uVar10 & 0x1f)) & uVar11" (unary_expression "~(-1 << (uVar10 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar10 & 0x1f))" ( (binary_expression "-1 << (uVar10 & 0x1f)" number_literal << (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar28 & 0x1f)" ( (binary_expression "uVar28 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }" if (parenthesized_expression "((uVar28 & 0x20) != 0)" ( (binary_expression "(uVar28 & 0x20) != 0" (parenthesized_expression "(uVar28 & 0x20)" ( (binary_expression "uVar28 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                bVar15 = 0;\n              }" { (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) })) (expression_statement "*pbVar31 = bVar15 | *pbVar31;" (assignment_expression "*pbVar31 = bVar15 | *pbVar31" (pointer_expression "*pbVar31" * identifier) = (binary_expression "bVar15 | *pbVar31" identifier | (pointer_expression "*pbVar31" * identifier))) ;) (if_statement "if (uVar28 != 0) break;" if (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 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 "sVar27 = 8;" (assignment_expression "sVar27 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar17 < 1) goto LAB_0016652c;" if (parenthesized_expression "((int)uVar17 < 1)" ( (binary_expression "(int)uVar17 < 1" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0016652c;" goto statement_identifier ;)) })) (expression_statement "sVar27 = (quantum_info->state).bits;" (assignment_expression "sVar27 = (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)uVar17)" ( (binary_expression "0 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0016652c:\n          pPVar8 = image->channel_map;" statement_identifier : (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;)) (expression_statement "fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + pPVar8[2].offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8[2].offset * 4)" ( (binary_expression "iVar26 + pPVar8[2].offset * 4" identifier + (binary_expression "pPVar8[2].offset * 4" (field_expression "pPVar8[2].offset" (subscript_expression "pPVar8[2]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (expression_statement "uVar25 = quantum_info->depth;" (assignment_expression "uVar25 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (NAN(fVar42)) {\nLAB_00166cb4:\n            uVar9 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(NAN(fVar42))" ( (call_expression "NAN(fVar42)" identifier (argument_list "(fVar42)" ( identifier ))) )) (compound_statement "{\nLAB_00166cb4:\n            uVar9 = 0;\n          }" { (labeled_statement "LAB_00166cb4:\n            uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" else (compound_statement "{\nLAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" { (labeled_statement "LAB_00166550:\n            if (fVar42 <= 0.0) goto LAB_00166cb4;" statement_identifier : (if_statement "if (fVar42 <= 0.0) goto LAB_00166cb4;" if (parenthesized_expression "(fVar42 <= 0.0)" ( (binary_expression "fVar42 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00166cb4;" goto statement_identifier ;))) (expression_statement "dVar50 = ((double)fVar42 * dVar48) / dVar46;" (assignment_expression "dVar50 = ((double)fVar42 * dVar48) / dVar46" identifier = (binary_expression "((double)fVar42 * dVar48) / dVar46" (parenthesized_expression "((double)fVar42 * dVar48)" ( (binary_expression "(double)fVar42 * dVar48" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar50 < dVar45)" ( (binary_expression "dVar50 < dVar45" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);\n              uVar9 = extraout_v1_04;\n            }" { (expression_statement "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49);" (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + dVar49)" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar50 + dVar49)" ( (binary_expression "dVar50 + dVar49" identifier + identifier) ))) ;) (expression_statement "uVar9 = extraout_v1_04;" (assignment_expression "uVar9 = extraout_v1_04" identifier = identifier) ;) }) (else_clause "else {\n              uVar9 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar9 = 0xffffffff;\n            }" { (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) }))) }))) (if_statement "if (sVar27 == 0) {\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }" if (parenthesized_expression "(sVar27 == 0)" ( (binary_expression "sVar27 == 0" identifier == number_literal) )) (compound_statement "{\n            sVar27 = 8;\n            (quantum_info->state).bits = 8;\n          }" { (expression_statement "sVar27 = 8;" (assignment_expression "sVar27 = 8" 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) ;) })) }))) (if_statement "if ((int)uVar25 < 1) {\n          uVar10 = 0;\n          uVar9 = uVar25;\n          if (pPVar8[4].traits == BlendPixelTrait) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016662c:\n          pPVar8 = image->channel_map;\n          uVar25 = quantum_info->depth;\n          if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n            if (fVar42 <= 0.0) goto LAB_00166640;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar10 = 0;\n          }\n          uVar9 = uVar25;\n          if (sVar27 == 0) {\n            (quantum_info->state).bits = 8;\n          }\n        }" if (parenthesized_expression "((int)uVar25 < 1)" ( (binary_expression "(int)uVar25 < 1" (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar10 = 0;\n          uVar9 = uVar25;\n          if (pPVar8[4].traits == BlendPixelTrait) goto LAB_00166c44;\n        }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = uVar25;" (assignment_expression "uVar9 = uVar25" identifier = identifier) ;) (if_statement "if (pPVar8[4].traits == BlendPixelTrait) goto LAB_00166c44;" if (parenthesized_expression "(pPVar8[4].traits == BlendPixelTrait)" ( (binary_expression "pPVar8[4].traits == BlendPixelTrait" (field_expression "pPVar8[4].traits" (subscript_expression "pPVar8[4]" identifier [ number_literal ]) . field_identifier) == identifier) )) (goto_statement "goto LAB_00166c44;" goto statement_identifier ;)) }) (else_clause "else {\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016662c:\n          pPVar8 = image->channel_map;\n          uVar25 = quantum_info->depth;\n          if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n            if (fVar42 <= 0.0) goto LAB_00166640;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar10 = 0;\n          }\n          uVar9 = uVar25;\n          if (sVar27 == 0) {\n            (quantum_info->state).bits = 8;\n          }\n        }" else (compound_statement "{\n          do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);\nLAB_0016662c:\n          pPVar8 = image->channel_map;\n          uVar25 = quantum_info->depth;\n          if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n            if (fVar42 <= 0.0) goto LAB_00166640;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar10 = 0;\n          }\n          uVar9 = uVar25;\n          if (sVar27 == 0) {\n            (quantum_info->state).bits = 8;\n          }\n        }" { (do_statement "do {\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          } while (0 < (int)uVar17);" do (compound_statement "{\n            while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }\n            sVar27 = (quantum_info->state).bits;\n          }" { (while_statement "while( true ) {\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar10 = sVar27;\n              if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }\n              uVar17 = uVar25 - uVar10;\n              uVar25 = uVar17;\n              if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }\n              if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }\n              uVar11 = uVar9 >> (uVar25 & 0x1f);\n              if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }\n              uVar28 = sVar27 - uVar10;\n              (quantum_info->state).bits = uVar28;\n              bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n              if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }\n              *pbVar31 = bVar15 | *pbVar31;\n              if (uVar28 != 0) break;\n              pbVar31 = pbVar31 + 1;\n              (quantum_info->state).bits = 8;\n              sVar27 = 8;\n              if ((int)uVar17 < 1) goto LAB_0016662c;\n            }" { (expression_statement "uVar10 = sVar27;" (assignment_expression "uVar10 = sVar27" identifier = identifier) ;) (if_statement "if (uVar25 <= sVar27) {\n                uVar10 = uVar25;\n              }" if (parenthesized_expression "(uVar25 <= sVar27)" ( (binary_expression "uVar25 <= sVar27" identifier <= identifier) )) (compound_statement "{\n                uVar10 = uVar25;\n              }" { (expression_statement "uVar10 = uVar25;" (assignment_expression "uVar10 = uVar25" identifier = identifier) ;) })) (expression_statement "uVar17 = uVar25 - uVar10;" (assignment_expression "uVar17 = uVar25 - uVar10" identifier = (binary_expression "uVar25 - uVar10" identifier - identifier)) ;) (expression_statement "uVar25 = uVar17;" (assignment_expression "uVar25 = uVar17" identifier = identifier) ;) (if_statement "if ((int)uVar17 < 0) {\n                uVar25 = 0;\n              }" if (parenthesized_expression "((int)uVar17 < 0)" ( (binary_expression "(int)uVar17 < 0" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                uVar25 = 0;\n              }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) })) (if_statement "if (sVar27 == 8) {\n                *pbVar31 = 0;\n              }" if (parenthesized_expression "(sVar27 == 8)" ( (binary_expression "sVar27 == 8" identifier == number_literal) )) (compound_statement "{\n                *pbVar31 = 0;\n              }" { (expression_statement "*pbVar31 = 0;" (assignment_expression "*pbVar31 = 0" (pointer_expression "*pbVar31" * identifier) = number_literal) ;) })) (expression_statement "uVar11 = uVar9 >> (uVar25 & 0x1f);" (assignment_expression "uVar11 = uVar9 >> (uVar25 & 0x1f)" identifier = (binary_expression "uVar9 >> (uVar25 & 0x1f)" identifier >> (parenthesized_expression "(uVar25 & 0x1f)" ( (binary_expression "uVar25 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar25 & 0x20) != 0) {\n                uVar11 = 0;\n              }" if (parenthesized_expression "((uVar25 & 0x20) != 0)" ( (binary_expression "(uVar25 & 0x20) != 0" (parenthesized_expression "(uVar25 & 0x20)" ( (binary_expression "uVar25 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar11 = 0;\n              }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) })) (expression_statement "uVar28 = sVar27 - uVar10;" (assignment_expression "uVar28 = sVar27 - uVar10" identifier = (binary_expression "sVar27 - uVar10" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar28;" (assignment_expression "(quantum_info->state).bits = uVar28" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));" (assignment_expression "bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" ( (binary_expression "(~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar10 & 0x1f)) & uVar11)" ( (binary_expression "~(-1 << (uVar10 & 0x1f)) & uVar11" (unary_expression "~(-1 << (uVar10 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar10 & 0x1f))" ( (binary_expression "-1 << (uVar10 & 0x1f)" number_literal << (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar28 & 0x1f)" ( (binary_expression "uVar28 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar28 & 0x20) != 0) {\n                bVar15 = 0;\n              }" if (parenthesized_expression "((uVar28 & 0x20) != 0)" ( (binary_expression "(uVar28 & 0x20) != 0" (parenthesized_expression "(uVar28 & 0x20)" ( (binary_expression "uVar28 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                bVar15 = 0;\n              }" { (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) })) (expression_statement "*pbVar31 = bVar15 | *pbVar31;" (assignment_expression "*pbVar31 = bVar15 | *pbVar31" (pointer_expression "*pbVar31" * identifier) = (binary_expression "bVar15 | *pbVar31" identifier | (pointer_expression "*pbVar31" * identifier))) ;) (if_statement "if (uVar28 != 0) break;" if (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 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 "sVar27 = 8;" (assignment_expression "sVar27 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar17 < 1) goto LAB_0016662c;" if (parenthesized_expression "((int)uVar17 < 1)" ( (binary_expression "(int)uVar17 < 1" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0016662c;" goto statement_identifier ;)) })) (expression_statement "sVar27 = (quantum_info->state).bits;" (assignment_expression "sVar27 = (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)uVar17)" ( (binary_expression "0 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0016662c:\n          pPVar8 = image->channel_map;" statement_identifier : (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;)) (expression_statement "uVar25 = quantum_info->depth;" (assignment_expression "uVar25 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n            if (fVar42 <= 0.0) goto LAB_00166640;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar10 = 0;\n          }" if (parenthesized_expression "(pPVar8[4].traits == BlendPixelTrait)" ( (binary_expression "pPVar8[4].traits == BlendPixelTrait" (field_expression "pPVar8[4].traits" (subscript_expression "pPVar8[4]" identifier [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\nLAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n            if (fVar42 <= 0.0) goto LAB_00166640;\n            dVar50 = ((double)fVar42 * dVar48) / dVar46;\n            if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }\n          }" { (labeled_statement "LAB_00166c44:\n            fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);" statement_identifier : (expression_statement "fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);" (assignment_expression "fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4)" identifier = (binary_expression "fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4)" identifier - (pointer_expression "*(float *)(iVar26 + pPVar8[4].offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8[4].offset * 4)" ( (binary_expression "iVar26 + pPVar8[4].offset * 4" identifier + (binary_expression "pPVar8[4].offset * 4" (field_expression "pPVar8[4].offset" (subscript_expression "pPVar8[4]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))))) ;)) (if_statement "if (fVar42 <= 0.0) goto LAB_00166640;" if (parenthesized_expression "(fVar42 <= 0.0)" ( (binary_expression "fVar42 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00166640;" goto statement_identifier ;)) (expression_statement "dVar50 = ((double)fVar42 * dVar48) / dVar46;" (assignment_expression "dVar50 = ((double)fVar42 * dVar48) / dVar46" identifier = (binary_expression "((double)fVar42 * dVar48) / dVar46" (parenthesized_expression "((double)fVar42 * dVar48)" ( (binary_expression "(double)fVar42 * dVar48" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar50 < dVar45) {\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }\n            else {\n              uVar10 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar50 < dVar45)" ( (binary_expression "dVar50 < dVar45" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));\n              uVar10 = extraout_v1_05;\n            }" { (expression_statement "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400));" (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar50 + *(double *)(puVar2 + 0x1400))" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar50 + *(double *)(puVar2 + 0x1400))" ( (binary_expression "dVar50 + *(double *)(puVar2 + 0x1400)" identifier + (pointer_expression "*(double *)(puVar2 + 0x1400)" * (cast_expression "(double *)(puVar2 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1400)" ( (binary_expression "puVar2 + 0x1400" identifier + number_literal) ))))) ))) ;) (expression_statement "uVar10 = extraout_v1_05;" (assignment_expression "uVar10 = extraout_v1_05" identifier = identifier) ;) }) (else_clause "else {\n              uVar10 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar10 = 0xffffffff;\n            }" { (expression_statement "uVar10 = 0xffffffff;" (assignment_expression "uVar10 = 0xffffffff" identifier = number_literal) ;) }))) }) (else_clause "else {\nLAB_00166640:\n            uVar10 = 0;\n          }" else (compound_statement "{\nLAB_00166640:\n            uVar10 = 0;\n          }" { (labeled_statement "LAB_00166640:\n            uVar10 = 0;" statement_identifier : (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;)) }))) (expression_statement "uVar9 = uVar25;" (assignment_expression "uVar9 = uVar25" identifier = identifier) ;) (if_statement "if (sVar27 == 0) {\n            (quantum_info->state).bits = 8;\n          }" if (parenthesized_expression "(sVar27 == 0)" ( (binary_expression "sVar27 == 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)uVar9) {\n          uVar11 = (quantum_info->state).bits;\n          uVar17 = uVar11;\n          if (uVar25 <= uVar11) {\n            uVar17 = uVar25;\n          }\n          uVar9 = uVar25 - uVar17;\n          uVar25 = uVar9;\n          if ((int)uVar9 < 0) {\n            uVar25 = 0;\n          }\n          if (uVar11 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar28 = uVar10 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar28 = 0;\n          }\n          uVar11 = uVar11 - uVar17;\n          (quantum_info->state).bits = uVar11;\n          bVar15 = (byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f));\n          if ((uVar11 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar11 == 0) {\n            pbVar31 = pbVar31 + 1;\n            (quantum_info->state).bits = 8;\n          }\n        }" while (parenthesized_expression "(0 < (int)uVar9)" ( (binary_expression "0 < (int)uVar9" number_literal < (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar11 = (quantum_info->state).bits;\n          uVar17 = uVar11;\n          if (uVar25 <= uVar11) {\n            uVar17 = uVar25;\n          }\n          uVar9 = uVar25 - uVar17;\n          uVar25 = uVar9;\n          if ((int)uVar9 < 0) {\n            uVar25 = 0;\n          }\n          if (uVar11 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar28 = uVar10 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar28 = 0;\n          }\n          uVar11 = uVar11 - uVar17;\n          (quantum_info->state).bits = uVar11;\n          bVar15 = (byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f));\n          if ((uVar11 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar11 == 0) {\n            pbVar31 = pbVar31 + 1;\n            (quantum_info->state).bits = 8;\n          }\n        }" { (expression_statement "uVar11 = (quantum_info->state).bits;" (assignment_expression "uVar11 = (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 "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) (if_statement "if (uVar25 <= uVar11) {\n            uVar17 = uVar25;\n          }" if (parenthesized_expression "(uVar25 <= uVar11)" ( (binary_expression "uVar25 <= uVar11" identifier <= identifier) )) (compound_statement "{\n            uVar17 = uVar25;\n          }" { (expression_statement "uVar17 = uVar25;" (assignment_expression "uVar17 = uVar25" identifier = identifier) ;) })) (expression_statement "uVar9 = uVar25 - uVar17;" (assignment_expression "uVar9 = uVar25 - uVar17" identifier = (binary_expression "uVar25 - uVar17" identifier - identifier)) ;) (expression_statement "uVar25 = uVar9;" (assignment_expression "uVar25 = uVar9" identifier = identifier) ;) (if_statement "if ((int)uVar9 < 0) {\n            uVar25 = 0;\n          }" if (parenthesized_expression "((int)uVar9 < 0)" ( (binary_expression "(int)uVar9 < 0" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar25 = 0;\n          }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar11 == 8) {\n            *pbVar31 = 0;\n          }" if (parenthesized_expression "(uVar11 == 8)" ( (binary_expression "uVar11 == 8" identifier == number_literal) )) (compound_statement "{\n            *pbVar31 = 0;\n          }" { (expression_statement "*pbVar31 = 0;" (assignment_expression "*pbVar31 = 0" (pointer_expression "*pbVar31" * identifier) = number_literal) ;) })) (expression_statement "uVar28 = uVar10 >> (uVar25 & 0x1f);" (assignment_expression "uVar28 = uVar10 >> (uVar25 & 0x1f)" identifier = (binary_expression "uVar10 >> (uVar25 & 0x1f)" identifier >> (parenthesized_expression "(uVar25 & 0x1f)" ( (binary_expression "uVar25 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar25 & 0x20) != 0) {\n            uVar28 = 0;\n          }" if (parenthesized_expression "((uVar25 & 0x20) != 0)" ( (binary_expression "(uVar25 & 0x20) != 0" (parenthesized_expression "(uVar25 & 0x20)" ( (binary_expression "uVar25 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar28 = 0;\n          }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) })) (expression_statement "uVar11 = uVar11 - uVar17;" (assignment_expression "uVar11 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar11;" (assignment_expression "(quantum_info->state).bits = uVar11" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar15 = (byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f));" (assignment_expression "bVar15 = (byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f))" ( (binary_expression "(~(-1 << (uVar17 & 0x1f)) & uVar28) << (uVar11 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar17 & 0x1f)) & uVar28)" ( (binary_expression "~(-1 << (uVar17 & 0x1f)) & uVar28" (unary_expression "~(-1 << (uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar17 & 0x1f))" ( (binary_expression "-1 << (uVar17 & 0x1f)" number_literal << (parenthesized_expression "(uVar17 & 0x1f)" ( (binary_expression "uVar17 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar11 & 0x1f)" ( (binary_expression "uVar11 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n            bVar15 = 0;\n          }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar15 = 0;\n          }" { (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) })) (expression_statement "*pbVar31 = bVar15 | *pbVar31;" (assignment_expression "*pbVar31 = bVar15 | *pbVar31" (pointer_expression "*pbVar31" * identifier) = (binary_expression "bVar15 | *pbVar31" identifier | (pointer_expression "*pbVar31" * identifier))) ;) (if_statement "if (uVar11 == 0) {\n            pbVar31 = pbVar31 + 1;\n            (quantum_info->state).bits = 8;\n          }" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            pbVar31 = pbVar31 + 1;\n            (quantum_info->state).bits = 8;\n          }" { (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 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 "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (expression_statement "number_pixels = CONCAT44(iVar26 + image->number_channels * 4,pbVar31 + quantum_info->pad);" (assignment_expression "number_pixels = CONCAT44(iVar26 + image->number_channels * 4,pbVar31 + quantum_info->pad)" identifier = (call_expression "CONCAT44(iVar26 + image->number_channels * 4,pbVar31 + quantum_info->pad)" identifier (argument_list "(iVar26 + image->number_channels * 4,pbVar31 + quantum_info->pad)" ( (binary_expression "iVar26 + image->number_channels * 4" identifier + (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal)) , (binary_expression "pbVar31 + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) )))) ;) (if_statement "if (puVar29 == q) {\n          return;\n        }" if (parenthesized_expression "(puVar29 == q)" ( (binary_expression "puVar29 == q" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "uVar25 = quantum_info->depth;" (assignment_expression "uVar25 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_00165538:\n    if (uVar25 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }" statement_identifier : (if_statement "if (uVar25 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }" if (parenthesized_expression "(uVar25 == 0)" ( (binary_expression "uVar25 == 0" identifier == number_literal) )) (compound_statement "{\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }" { (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0016507c;" goto statement_identifier ;) }))) }) (else_clause "else {\n    if (uVar25 == 0x20) {\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *puVar12 = uVar6;\n            puVar12[1] = uVar14;\n            puVar12[2] = uVar16;\n            puVar12[3] = SUB41(fVar42,0);\n          }\n          else {\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[4] = uVar6;\n            puVar12[5] = uVar14;\n            puVar12[6] = uVar16;\n            puVar12[7] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[8] = uVar6;\n            puVar12[9] = uVar14;\n            puVar12[10] = uVar16;\n            puVar12[0xb] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n          }\n          else {\n            dVar33 = 0.0;\n          }\n          fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[0xc] = uVar6;\n            puVar12[0xd] = uVar14;\n            puVar12[0xe] = uVar16;\n            puVar12[0xf] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels =\n               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        } while (puVar29 != q);\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165ecc;\nLAB_001660ec:\n          *puVar12 = uVar16;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660ec;\nLAB_00165ecc:\n          *puVar12 = uVar23;\n          puVar12[1] = uVar6;\n          puVar12[2] = uVar14;\n          puVar12[3] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165f54;\nLAB_0016611c:\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar20;\n          puVar12[6] = uVar22;\n          puVar12[7] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_0016611c;\nLAB_00165f54:\n          puVar12[4] = uVar23;\n          puVar12[5] = uVar6;\n          puVar12[6] = uVar14;\n          puVar12[7] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165fe8;\nLAB_001660b8:\n          puVar12[8] = uVar16;\n          puVar12[9] = uVar20;\n          puVar12[10] = uVar22;\n          puVar12[0xb] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660b8;\nLAB_00165fe8:\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar6;\n          puVar12[10] = uVar14;\n          puVar12[0xb] = uVar7;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar16 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar20 = 0;\nLAB_00165e14:\n          if (quantum_info->endian != LSBEndian) goto LAB_00165e24;\nLAB_00166084:\n          puVar12[0xc] = uVar16;\n          puVar12[0xd] = uVar14;\n          puVar12[0xe] = uVar6;\n          puVar12[0xf] = uVar20;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          if (dVar33 <= dVar37) {\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar37 = dVar37 + dVar36;\n          if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n            uVar25 = (uint)dVar37;\n          }\n          else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          uVar20 = (undefined1)(uVar25 >> 0x18);\n          uVar6 = (undefined1)(uVar25 >> 0x10);\n          uVar14 = (undefined1)(uVar25 >> 8);\n          uVar16 = (undefined1)uVar25;\n          if (quantum_info->endian == LSBEndian) goto LAB_00166084;\nLAB_00165e24:\n          puVar12[0xc] = uVar20;\n          puVar12[0xd] = uVar6;\n          puVar12[0xe] = uVar14;\n          puVar12[0xf] = uVar16;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        if (puVar29 == q) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar25 != 0x40) goto LAB_00165538;\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x20);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          *puVar12 = uVar14;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar6;\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar24;\n          puVar12[6] = uVar7;\n          puVar12[7] = SUB81(dVar33,0);\n        }\n        else {\n          *puVar12 = SUB81(dVar33,0);\n          puVar12[1] = uVar7;\n          puVar12[2] = uVar24;\n          puVar12[3] = uVar16;\n          puVar12[4] = uVar6;\n          puVar12[5] = uVar22;\n          puVar12[6] = uVar20;\n          puVar12[7] = uVar14;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[8] = uVar6;\n          puVar12[9] = uVar16;\n          puVar12[10] = uVar20;\n          puVar12[0xb] = uVar22;\n          puVar12[0xc] = uVar14;\n          puVar12[0xd] = uVar24;\n          puVar12[0xe] = uVar7;\n          puVar12[0xf] = uVar23;\n        }\n        else {\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar7;\n          puVar12[10] = uVar24;\n          puVar12[0xb] = uVar14;\n          puVar12[0xc] = uVar22;\n          puVar12[0xd] = uVar20;\n          puVar12[0xe] = uVar16;\n          puVar12[0xf] = uVar6;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x10] = uVar6;\n          puVar12[0x11] = uVar16;\n          puVar12[0x12] = uVar20;\n          puVar12[0x13] = uVar22;\n          puVar12[0x14] = uVar14;\n          puVar12[0x15] = uVar24;\n          puVar12[0x16] = uVar7;\n          puVar12[0x17] = uVar23;\n        }\n        else {\n          puVar12[0x10] = uVar23;\n          puVar12[0x11] = uVar7;\n          puVar12[0x12] = uVar24;\n          puVar12[0x13] = uVar14;\n          puVar12[0x14] = uVar22;\n          puVar12[0x15] = uVar20;\n          puVar12[0x16] = uVar16;\n          puVar12[0x17] = uVar6;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n        }\n        else {\n          dVar33 = 0.0;\n        }\n        dVar33 = dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x18] = uVar6;\n          puVar12[0x19] = uVar16;\n          puVar12[0x1a] = uVar20;\n          puVar12[0x1b] = uVar22;\n          puVar12[0x1c] = uVar14;\n          puVar12[0x1d] = uVar24;\n          puVar12[0x1e] = uVar7;\n          puVar12[0x1f] = uVar23;\n        }\n        else {\n          puVar12[0x18] = uVar23;\n          puVar12[0x19] = uVar7;\n          puVar12[0x1a] = uVar24;\n          puVar12[0x1b] = uVar14;\n          puVar12[0x1c] = uVar22;\n          puVar12[0x1d] = uVar20;\n          puVar12[0x1e] = uVar16;\n          puVar12[0x1f] = uVar6;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20);\n      } while (puVar29 != q);\n      return;\n    }\n  }" else (compound_statement "{\n    if (uVar25 == 0x20) {\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *puVar12 = uVar6;\n            puVar12[1] = uVar14;\n            puVar12[2] = uVar16;\n            puVar12[3] = SUB41(fVar42,0);\n          }\n          else {\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[4] = uVar6;\n            puVar12[5] = uVar14;\n            puVar12[6] = uVar16;\n            puVar12[7] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[8] = uVar6;\n            puVar12[9] = uVar14;\n            puVar12[10] = uVar16;\n            puVar12[0xb] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n          }\n          else {\n            dVar33 = 0.0;\n          }\n          fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[0xc] = uVar6;\n            puVar12[0xd] = uVar14;\n            puVar12[0xe] = uVar16;\n            puVar12[0xf] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels =\n               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        } while (puVar29 != q);\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165ecc;\nLAB_001660ec:\n          *puVar12 = uVar16;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660ec;\nLAB_00165ecc:\n          *puVar12 = uVar23;\n          puVar12[1] = uVar6;\n          puVar12[2] = uVar14;\n          puVar12[3] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165f54;\nLAB_0016611c:\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar20;\n          puVar12[6] = uVar22;\n          puVar12[7] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_0016611c;\nLAB_00165f54:\n          puVar12[4] = uVar23;\n          puVar12[5] = uVar6;\n          puVar12[6] = uVar14;\n          puVar12[7] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165fe8;\nLAB_001660b8:\n          puVar12[8] = uVar16;\n          puVar12[9] = uVar20;\n          puVar12[10] = uVar22;\n          puVar12[0xb] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660b8;\nLAB_00165fe8:\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar6;\n          puVar12[10] = uVar14;\n          puVar12[0xb] = uVar7;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar16 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar20 = 0;\nLAB_00165e14:\n          if (quantum_info->endian != LSBEndian) goto LAB_00165e24;\nLAB_00166084:\n          puVar12[0xc] = uVar16;\n          puVar12[0xd] = uVar14;\n          puVar12[0xe] = uVar6;\n          puVar12[0xf] = uVar20;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          if (dVar33 <= dVar37) {\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar37 = dVar37 + dVar36;\n          if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n            uVar25 = (uint)dVar37;\n          }\n          else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          uVar20 = (undefined1)(uVar25 >> 0x18);\n          uVar6 = (undefined1)(uVar25 >> 0x10);\n          uVar14 = (undefined1)(uVar25 >> 8);\n          uVar16 = (undefined1)uVar25;\n          if (quantum_info->endian == LSBEndian) goto LAB_00166084;\nLAB_00165e24:\n          puVar12[0xc] = uVar20;\n          puVar12[0xd] = uVar6;\n          puVar12[0xe] = uVar14;\n          puVar12[0xf] = uVar16;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        if (puVar29 == q) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar25 != 0x40) goto LAB_00165538;\n    if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x20);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          *puVar12 = uVar14;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar6;\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar24;\n          puVar12[6] = uVar7;\n          puVar12[7] = SUB81(dVar33,0);\n        }\n        else {\n          *puVar12 = SUB81(dVar33,0);\n          puVar12[1] = uVar7;\n          puVar12[2] = uVar24;\n          puVar12[3] = uVar16;\n          puVar12[4] = uVar6;\n          puVar12[5] = uVar22;\n          puVar12[6] = uVar20;\n          puVar12[7] = uVar14;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[8] = uVar6;\n          puVar12[9] = uVar16;\n          puVar12[10] = uVar20;\n          puVar12[0xb] = uVar22;\n          puVar12[0xc] = uVar14;\n          puVar12[0xd] = uVar24;\n          puVar12[0xe] = uVar7;\n          puVar12[0xf] = uVar23;\n        }\n        else {\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar7;\n          puVar12[10] = uVar24;\n          puVar12[0xb] = uVar14;\n          puVar12[0xc] = uVar22;\n          puVar12[0xd] = uVar20;\n          puVar12[0xe] = uVar16;\n          puVar12[0xf] = uVar6;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x10] = uVar6;\n          puVar12[0x11] = uVar16;\n          puVar12[0x12] = uVar20;\n          puVar12[0x13] = uVar22;\n          puVar12[0x14] = uVar14;\n          puVar12[0x15] = uVar24;\n          puVar12[0x16] = uVar7;\n          puVar12[0x17] = uVar23;\n        }\n        else {\n          puVar12[0x10] = uVar23;\n          puVar12[0x11] = uVar7;\n          puVar12[0x12] = uVar24;\n          puVar12[0x13] = uVar14;\n          puVar12[0x14] = uVar22;\n          puVar12[0x15] = uVar20;\n          puVar12[0x16] = uVar16;\n          puVar12[0x17] = uVar6;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n        }\n        else {\n          dVar33 = 0.0;\n        }\n        dVar33 = dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x18] = uVar6;\n          puVar12[0x19] = uVar16;\n          puVar12[0x1a] = uVar20;\n          puVar12[0x1b] = uVar22;\n          puVar12[0x1c] = uVar14;\n          puVar12[0x1d] = uVar24;\n          puVar12[0x1e] = uVar7;\n          puVar12[0x1f] = uVar23;\n        }\n        else {\n          puVar12[0x18] = uVar23;\n          puVar12[0x19] = uVar7;\n          puVar12[0x1a] = uVar24;\n          puVar12[0x1b] = uVar14;\n          puVar12[0x1c] = uVar22;\n          puVar12[0x1d] = uVar20;\n          puVar12[0x1e] = uVar16;\n          puVar12[0x1f] = uVar6;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20);\n      } while (puVar29 != q);\n      return;\n    }\n  }" { (if_statement "if (uVar25 == 0x20) {\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *puVar12 = uVar6;\n            puVar12[1] = uVar14;\n            puVar12[2] = uVar16;\n            puVar12[3] = SUB41(fVar42,0);\n          }\n          else {\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[4] = uVar6;\n            puVar12[5] = uVar14;\n            puVar12[6] = uVar16;\n            puVar12[7] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[8] = uVar6;\n            puVar12[9] = uVar14;\n            puVar12[10] = uVar16;\n            puVar12[0xb] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n          }\n          else {\n            dVar33 = 0.0;\n          }\n          fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[0xc] = uVar6;\n            puVar12[0xd] = uVar14;\n            puVar12[0xe] = uVar16;\n            puVar12[0xf] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels =\n               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        } while (puVar29 != q);\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165ecc;\nLAB_001660ec:\n          *puVar12 = uVar16;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660ec;\nLAB_00165ecc:\n          *puVar12 = uVar23;\n          puVar12[1] = uVar6;\n          puVar12[2] = uVar14;\n          puVar12[3] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165f54;\nLAB_0016611c:\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar20;\n          puVar12[6] = uVar22;\n          puVar12[7] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_0016611c;\nLAB_00165f54:\n          puVar12[4] = uVar23;\n          puVar12[5] = uVar6;\n          puVar12[6] = uVar14;\n          puVar12[7] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165fe8;\nLAB_001660b8:\n          puVar12[8] = uVar16;\n          puVar12[9] = uVar20;\n          puVar12[10] = uVar22;\n          puVar12[0xb] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660b8;\nLAB_00165fe8:\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar6;\n          puVar12[10] = uVar14;\n          puVar12[0xb] = uVar7;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar16 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar20 = 0;\nLAB_00165e14:\n          if (quantum_info->endian != LSBEndian) goto LAB_00165e24;\nLAB_00166084:\n          puVar12[0xc] = uVar16;\n          puVar12[0xd] = uVar14;\n          puVar12[0xe] = uVar6;\n          puVar12[0xf] = uVar20;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          if (dVar33 <= dVar37) {\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar37 = dVar37 + dVar36;\n          if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n            uVar25 = (uint)dVar37;\n          }\n          else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          uVar20 = (undefined1)(uVar25 >> 0x18);\n          uVar6 = (undefined1)(uVar25 >> 0x10);\n          uVar14 = (undefined1)(uVar25 >> 8);\n          uVar16 = (undefined1)uVar25;\n          if (quantum_info->endian == LSBEndian) goto LAB_00166084;\nLAB_00165e24:\n          puVar12[0xc] = uVar20;\n          puVar12[0xd] = uVar6;\n          puVar12[0xe] = uVar14;\n          puVar12[0xf] = uVar16;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        if (puVar29 == q) {\n          return;\n        }\n      } while( true );\n    }" if (parenthesized_expression "(uVar25 == 0x20)" ( (binary_expression "uVar25 == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *puVar12 = uVar6;\n            puVar12[1] = uVar14;\n            puVar12[2] = uVar16;\n            puVar12[3] = SUB41(fVar42,0);\n          }\n          else {\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[4] = uVar6;\n            puVar12[5] = uVar14;\n            puVar12[6] = uVar16;\n            puVar12[7] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[8] = uVar6;\n            puVar12[9] = uVar14;\n            puVar12[10] = uVar16;\n            puVar12[0xb] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n          }\n          else {\n            dVar33 = 0.0;\n          }\n          fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[0xc] = uVar6;\n            puVar12[0xd] = uVar14;\n            puVar12[0xe] = uVar16;\n            puVar12[0xf] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels =\n               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        } while (puVar29 != q);\n        return;\n      }\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165ecc;\nLAB_001660ec:\n          *puVar12 = uVar16;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660ec;\nLAB_00165ecc:\n          *puVar12 = uVar23;\n          puVar12[1] = uVar6;\n          puVar12[2] = uVar14;\n          puVar12[3] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165f54;\nLAB_0016611c:\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar20;\n          puVar12[6] = uVar22;\n          puVar12[7] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_0016611c;\nLAB_00165f54:\n          puVar12[4] = uVar23;\n          puVar12[5] = uVar6;\n          puVar12[6] = uVar14;\n          puVar12[7] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165fe8;\nLAB_001660b8:\n          puVar12[8] = uVar16;\n          puVar12[9] = uVar20;\n          puVar12[10] = uVar22;\n          puVar12[0xb] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660b8;\nLAB_00165fe8:\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar6;\n          puVar12[10] = uVar14;\n          puVar12[0xb] = uVar7;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar16 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar20 = 0;\nLAB_00165e14:\n          if (quantum_info->endian != LSBEndian) goto LAB_00165e24;\nLAB_00166084:\n          puVar12[0xc] = uVar16;\n          puVar12[0xd] = uVar14;\n          puVar12[0xe] = uVar6;\n          puVar12[0xf] = uVar20;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          if (dVar33 <= dVar37) {\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar37 = dVar37 + dVar36;\n          if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n            uVar25 = (uint)dVar37;\n          }\n          else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          uVar20 = (undefined1)(uVar25 >> 0x18);\n          uVar6 = (undefined1)(uVar25 >> 0x10);\n          uVar14 = (undefined1)(uVar25 >> 8);\n          uVar16 = (undefined1)uVar25;\n          if (quantum_info->endian == LSBEndian) goto LAB_00166084;\nLAB_00165e24:\n          puVar12[0xc] = uVar20;\n          puVar12[0xd] = uVar6;\n          puVar12[0xe] = uVar14;\n          puVar12[0xf] = uVar16;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        if (puVar29 == q) {\n          return;\n        }\n      } while( true );\n    }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n        if ((int)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *puVar12 = uVar6;\n            puVar12[1] = uVar14;\n            puVar12[2] = uVar16;\n            puVar12[3] = SUB41(fVar42,0);\n          }\n          else {\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[4] = uVar6;\n            puVar12[5] = uVar14;\n            puVar12[6] = uVar16;\n            puVar12[7] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[8] = uVar6;\n            puVar12[9] = uVar14;\n            puVar12[10] = uVar16;\n            puVar12[0xb] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n          }\n          else {\n            dVar33 = 0.0;\n          }\n          fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[0xc] = uVar6;\n            puVar12[0xd] = uVar14;\n            puVar12[0xe] = uVar16;\n            puVar12[0xf] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels =\n               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        } while (puVar29 != q);\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)q < 1) {\n          return;\n        }\n        puVar29 = (uchar *)0x0;\n        fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *puVar12 = uVar6;\n            puVar12[1] = uVar14;\n            puVar12[2] = uVar16;\n            puVar12[3] = SUB41(fVar42,0);\n          }\n          else {\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[4] = uVar6;\n            puVar12[5] = uVar14;\n            puVar12[6] = uVar16;\n            puVar12[7] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[8] = uVar6;\n            puVar12[9] = uVar14;\n            puVar12[10] = uVar16;\n            puVar12[0xb] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n          }\n          else {\n            dVar33 = 0.0;\n          }\n          fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[0xc] = uVar6;\n            puVar12[0xd] = uVar14;\n            puVar12[0xe] = uVar16;\n            puVar12[0xf] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels =\n               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        } while (puVar29 != q);\n        return;\n      }" { (if_statement "if ((int)q < 1) {\n          return;\n        }" if (parenthesized_expression "((int)q < 1)" ( (binary_expression "(int)q < 1" (cast_expression "(int)q" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "puVar29 = (uchar *)0x0;" (assignment_expression "puVar29 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (do_statement "do {\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *puVar12 = uVar6;\n            puVar12[1] = uVar14;\n            puVar12[2] = uVar16;\n            puVar12[3] = SUB41(fVar42,0);\n          }\n          else {\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[4] = uVar6;\n            puVar12[5] = uVar14;\n            puVar12[6] = uVar16;\n            puVar12[7] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[8] = uVar6;\n            puVar12[9] = uVar14;\n            puVar12[10] = uVar16;\n            puVar12[0xb] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n          }\n          else {\n            dVar33 = 0.0;\n          }\n          fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[0xc] = uVar6;\n            puVar12[0xd] = uVar14;\n            puVar12[0xe] = uVar16;\n            puVar12[0xf] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels =\n               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        } while (puVar29 != q);" do (compound_statement "{\n          iVar26 = (int)(number_pixels >> 0x20);\n          puVar12 = (undefined1 *)number_pixels;\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            *puVar12 = uVar6;\n            puVar12[1] = uVar14;\n            puVar12[2] = uVar16;\n            puVar12[3] = SUB41(fVar42,0);\n          }\n          else {\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[4] = uVar6;\n            puVar12[5] = uVar14;\n            puVar12[6] = uVar16;\n            puVar12[7] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\n          }\n          fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[8] = uVar6;\n            puVar12[9] = uVar14;\n            puVar12[10] = uVar16;\n            puVar12[0xb] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\n          }\n          if (image->channel_map[4].traits == BlendPixelTrait) {\n            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n          }\n          else {\n            dVar33 = 0.0;\n          }\n          fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum);\n          uVar16 = (undefined1)((uint)fVar42 >> 8);\n          uVar14 = (undefined1)((uint)fVar42 >> 0x10);\n          uVar6 = (undefined1)((uint)fVar42 >> 0x18);\n          if (quantum_info->endian == LSBEndian) {\n            puVar12[0xc] = uVar6;\n            puVar12[0xd] = uVar14;\n            puVar12[0xe] = uVar16;\n            puVar12[0xf] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\n          }\n          puVar29 = puVar29 + 1;\n          number_pixels =\n               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        }" { (expression_statement "iVar26 = (int)(number_pixels >> 0x20);" (assignment_expression "iVar26 = (int)(number_pixels >> 0x20)" identifier = (cast_expression "(int)(number_pixels >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(number_pixels >> 0x20)" ( (binary_expression "number_pixels >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "puVar12 = (undefined1 *)number_pixels;" (assignment_expression "puVar12 = (undefined1 *)number_pixels" identifier = (cast_expression "(undefined1 *)number_pixels" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);" (assignment_expression "fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum)" identifier = (cast_expression "(float)((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum)" ( (binary_expression "(double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum" (binary_expression "(double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                           (quantum_info->state).inverse_scale" (cast_expression "(double)*(float *)(iVar26 + image->channel_map->offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar26 + image->channel_map->offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map->offset * 4)" ( (binary_expression "iVar26 + image->channel_map->offset * 4" identifier + (binary_expression "image->channel_map->offset * 4" (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) * number_literal)) ))))) * (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 "uVar16 = (undefined1)((uint)fVar42 >> 8);" (assignment_expression "uVar16 = (undefined1)((uint)fVar42 >> 8)" identifier = (call_expression "(undefined1)((uint)fVar42 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar42 >> 8)" ( (binary_expression "(uint)fVar42 >> 8" (cast_expression "(uint)fVar42" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)((uint)fVar42 >> 0x10);" (assignment_expression "uVar14 = (undefined1)((uint)fVar42 >> 0x10)" identifier = (call_expression "(undefined1)((uint)fVar42 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar42 >> 0x10)" ( (binary_expression "(uint)fVar42 >> 0x10" (cast_expression "(uint)fVar42" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)((uint)fVar42 >> 0x18);" (assignment_expression "uVar6 = (undefined1)((uint)fVar42 >> 0x18)" identifier = (call_expression "(undefined1)((uint)fVar42 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar42 >> 0x18)" ( (binary_expression "(uint)fVar42 >> 0x18" (cast_expression "(uint)fVar42" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n            *puVar12 = uVar6;\n            puVar12[1] = uVar14;\n            puVar12[2] = uVar16;\n            puVar12[3] = SUB41(fVar42,0);\n          }\n          else {\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\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            *puVar12 = uVar6;\n            puVar12[1] = uVar14;\n            puVar12[2] = uVar16;\n            puVar12[3] = SUB41(fVar42,0);\n          }" { (expression_statement "*puVar12 = uVar6;" (assignment_expression "*puVar12 = uVar6" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "puVar12[1] = uVar14;" (assignment_expression "puVar12[1] = uVar14" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = uVar16;" (assignment_expression "puVar12[2] = uVar16" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = SUB41(fVar42,0);" (assignment_expression "puVar12[3] = SUB41(fVar42,0)" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar42,0)" identifier (argument_list "(fVar42,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\n          }" else (compound_statement "{\n            *puVar12 = SUB41(fVar42,0);\n            puVar12[1] = uVar16;\n            puVar12[2] = uVar14;\n            puVar12[3] = uVar6;\n          }" { (expression_statement "*puVar12 = SUB41(fVar42,0);" (assignment_expression "*puVar12 = SUB41(fVar42,0)" (pointer_expression "*puVar12" * identifier) = (call_expression "SUB41(fVar42,0)" identifier (argument_list "(fVar42,0)" ( identifier , number_literal )))) ;) (expression_statement "puVar12[1] = uVar16;" (assignment_expression "puVar12[1] = uVar16" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = uVar14;" (assignment_expression "puVar12[2] = uVar14" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = uVar6;" (assignment_expression "puVar12[3] = uVar6" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);" (assignment_expression "fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum)" identifier = (cast_expression "(float)((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum)" ( (binary_expression "(double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum" (binary_expression "(double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                           (quantum_info->state).inverse_scale" (cast_expression "(double)*(float *)(iVar26 + image->channel_map[1].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar26 + image->channel_map[1].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[1].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[1].offset * 4" identifier + (binary_expression "image->channel_map[1].offset * 4" (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) * (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 "uVar16 = (undefined1)((uint)fVar42 >> 8);" (assignment_expression "uVar16 = (undefined1)((uint)fVar42 >> 8)" identifier = (call_expression "(undefined1)((uint)fVar42 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar42 >> 8)" ( (binary_expression "(uint)fVar42 >> 8" (cast_expression "(uint)fVar42" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)((uint)fVar42 >> 0x10);" (assignment_expression "uVar14 = (undefined1)((uint)fVar42 >> 0x10)" identifier = (call_expression "(undefined1)((uint)fVar42 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar42 >> 0x10)" ( (binary_expression "(uint)fVar42 >> 0x10" (cast_expression "(uint)fVar42" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)((uint)fVar42 >> 0x18);" (assignment_expression "uVar6 = (undefined1)((uint)fVar42 >> 0x18)" identifier = (call_expression "(undefined1)((uint)fVar42 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar42 >> 0x18)" ( (binary_expression "(uint)fVar42 >> 0x18" (cast_expression "(uint)fVar42" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n            puVar12[4] = uVar6;\n            puVar12[5] = uVar14;\n            puVar12[6] = uVar16;\n            puVar12[7] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\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            puVar12[4] = uVar6;\n            puVar12[5] = uVar14;\n            puVar12[6] = uVar16;\n            puVar12[7] = SUB41(fVar42,0);\n          }" { (expression_statement "puVar12[4] = uVar6;" (assignment_expression "puVar12[4] = uVar6" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[5] = uVar14;" (assignment_expression "puVar12[5] = uVar14" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[6] = uVar16;" (assignment_expression "puVar12[6] = uVar16" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[7] = SUB41(fVar42,0);" (assignment_expression "puVar12[7] = SUB41(fVar42,0)" (subscript_expression "puVar12[7]" identifier [ number_literal ]) = (call_expression "SUB41(fVar42,0)" identifier (argument_list "(fVar42,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\n          }" else (compound_statement "{\n            puVar12[4] = SUB41(fVar42,0);\n            puVar12[5] = uVar16;\n            puVar12[6] = uVar14;\n            puVar12[7] = uVar6;\n          }" { (expression_statement "puVar12[4] = SUB41(fVar42,0);" (assignment_expression "puVar12[4] = SUB41(fVar42,0)" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = (call_expression "SUB41(fVar42,0)" identifier (argument_list "(fVar42,0)" ( identifier , number_literal )))) ;) (expression_statement "puVar12[5] = uVar16;" (assignment_expression "puVar12[5] = uVar16" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[6] = uVar14;" (assignment_expression "puVar12[6] = uVar14" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[7] = uVar6;" (assignment_expression "puVar12[7] = uVar6" (subscript_expression "puVar12[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum);" (assignment_expression "fVar42 = (float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum)" identifier = (cast_expression "(float)((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum)" ( (binary_expression "(double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale + quantum_info->minimum" (binary_expression "(double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                           (quantum_info->state).inverse_scale" (cast_expression "(double)*(float *)(iVar26 + image->channel_map[2].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar26 + image->channel_map[2].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[2].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[2].offset * 4" identifier + (binary_expression "image->channel_map[2].offset * 4" (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) * (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 "uVar16 = (undefined1)((uint)fVar42 >> 8);" (assignment_expression "uVar16 = (undefined1)((uint)fVar42 >> 8)" identifier = (call_expression "(undefined1)((uint)fVar42 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar42 >> 8)" ( (binary_expression "(uint)fVar42 >> 8" (cast_expression "(uint)fVar42" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)((uint)fVar42 >> 0x10);" (assignment_expression "uVar14 = (undefined1)((uint)fVar42 >> 0x10)" identifier = (call_expression "(undefined1)((uint)fVar42 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar42 >> 0x10)" ( (binary_expression "(uint)fVar42 >> 0x10" (cast_expression "(uint)fVar42" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)((uint)fVar42 >> 0x18);" (assignment_expression "uVar6 = (undefined1)((uint)fVar42 >> 0x18)" identifier = (call_expression "(undefined1)((uint)fVar42 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar42 >> 0x18)" ( (binary_expression "(uint)fVar42 >> 0x18" (cast_expression "(uint)fVar42" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n            puVar12[8] = uVar6;\n            puVar12[9] = uVar14;\n            puVar12[10] = uVar16;\n            puVar12[0xb] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\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            puVar12[8] = uVar6;\n            puVar12[9] = uVar14;\n            puVar12[10] = uVar16;\n            puVar12[0xb] = SUB41(fVar42,0);\n          }" { (expression_statement "puVar12[8] = uVar6;" (assignment_expression "puVar12[8] = uVar6" (subscript_expression "puVar12[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[9] = uVar14;" (assignment_expression "puVar12[9] = uVar14" (subscript_expression "puVar12[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[10] = uVar16;" (assignment_expression "puVar12[10] = uVar16" (subscript_expression "puVar12[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xb] = SUB41(fVar42,0);" (assignment_expression "puVar12[0xb] = SUB41(fVar42,0)" (subscript_expression "puVar12[0xb]" identifier [ number_literal ]) = (call_expression "SUB41(fVar42,0)" identifier (argument_list "(fVar42,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\n          }" else (compound_statement "{\n            puVar12[8] = SUB41(fVar42,0);\n            puVar12[9] = uVar16;\n            puVar12[10] = uVar14;\n            puVar12[0xb] = uVar6;\n          }" { (expression_statement "puVar12[8] = SUB41(fVar42,0);" (assignment_expression "puVar12[8] = SUB41(fVar42,0)" (subscript_expression "puVar12[8]" identifier [ number_literal ]) = (call_expression "SUB41(fVar42,0)" identifier (argument_list "(fVar42,0)" ( identifier , number_literal )))) ;) (expression_statement "puVar12[9] = uVar16;" (assignment_expression "puVar12[9] = uVar16" (subscript_expression "puVar12[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[10] = uVar14;" (assignment_expression "puVar12[10] = uVar14" (subscript_expression "puVar12[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xb] = uVar6;" (assignment_expression "puVar12[0xb] = uVar6" (subscript_expression "puVar12[0xb]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (image->channel_map[4].traits == BlendPixelTrait) {\n            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n          }\n          else {\n            dVar33 = 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            dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n          }" { (expression_statement "dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));" (assignment_expression "dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4))" identifier = (cast_expression "(double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4))" ( (binary_expression "fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4)" identifier - (pointer_expression "*(float *)(iVar26 + image->channel_map[4].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[4].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[4].offset * 4" identifier + (binary_expression "image->channel_map[4].offset * 4" (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) )))) ;) }) (else_clause "else {\n            dVar33 = 0.0;\n          }" else (compound_statement "{\n            dVar33 = 0.0;\n          }" { (expression_statement "dVar33 = 0.0;" (assignment_expression "dVar33 = 0.0" identifier = number_literal) ;) }))) (expression_statement "fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum);" (assignment_expression "fVar42 = (float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum)" identifier = (cast_expression "(float)(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum)" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum)" ( (binary_expression "dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum" (binary_expression "dVar33 * (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 "uVar16 = (undefined1)((uint)fVar42 >> 8);" (assignment_expression "uVar16 = (undefined1)((uint)fVar42 >> 8)" identifier = (call_expression "(undefined1)((uint)fVar42 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar42 >> 8)" ( (binary_expression "(uint)fVar42 >> 8" (cast_expression "(uint)fVar42" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)((uint)fVar42 >> 0x10);" (assignment_expression "uVar14 = (undefined1)((uint)fVar42 >> 0x10)" identifier = (call_expression "(undefined1)((uint)fVar42 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar42 >> 0x10)" ( (binary_expression "(uint)fVar42 >> 0x10" (cast_expression "(uint)fVar42" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)((uint)fVar42 >> 0x18);" (assignment_expression "uVar6 = (undefined1)((uint)fVar42 >> 0x18)" identifier = (call_expression "(undefined1)((uint)fVar42 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)fVar42 >> 0x18)" ( (binary_expression "(uint)fVar42 >> 0x18" (cast_expression "(uint)fVar42" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n            puVar12[0xc] = uVar6;\n            puVar12[0xd] = uVar14;\n            puVar12[0xe] = uVar16;\n            puVar12[0xf] = SUB41(fVar42,0);\n          }\n          else {\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\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            puVar12[0xc] = uVar6;\n            puVar12[0xd] = uVar14;\n            puVar12[0xe] = uVar16;\n            puVar12[0xf] = SUB41(fVar42,0);\n          }" { (expression_statement "puVar12[0xc] = uVar6;" (assignment_expression "puVar12[0xc] = uVar6" (subscript_expression "puVar12[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xd] = uVar14;" (assignment_expression "puVar12[0xd] = uVar14" (subscript_expression "puVar12[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xe] = uVar16;" (assignment_expression "puVar12[0xe] = uVar16" (subscript_expression "puVar12[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xf] = SUB41(fVar42,0);" (assignment_expression "puVar12[0xf] = SUB41(fVar42,0)" (subscript_expression "puVar12[0xf]" identifier [ number_literal ]) = (call_expression "SUB41(fVar42,0)" identifier (argument_list "(fVar42,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\n          }" else (compound_statement "{\n            puVar12[0xc] = SUB41(fVar42,0);\n            puVar12[0xd] = uVar16;\n            puVar12[0xe] = uVar14;\n            puVar12[0xf] = uVar6;\n          }" { (expression_statement "puVar12[0xc] = SUB41(fVar42,0);" (assignment_expression "puVar12[0xc] = SUB41(fVar42,0)" (subscript_expression "puVar12[0xc]" identifier [ number_literal ]) = (call_expression "SUB41(fVar42,0)" identifier (argument_list "(fVar42,0)" ( identifier , number_literal )))) ;) (expression_statement "puVar12[0xd] = uVar16;" (assignment_expression "puVar12[0xd] = uVar16" (subscript_expression "puVar12[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xe] = uVar14;" (assignment_expression "puVar12[0xe] = uVar14" (subscript_expression "puVar12[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xf] = uVar6;" (assignment_expression "puVar12[0xf] = uVar6" (subscript_expression "puVar12[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (expression_statement "number_pixels =\n               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);" (assignment_expression "number_pixels =\n               CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10)" identifier = (call_expression "CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10)" identifier (argument_list "(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10)" ( (binary_expression "iVar26 + image->number_channels * 4" identifier + (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal)) , (binary_expression "puVar12 + quantum_info->pad + 0x10" (binary_expression "puVar12 + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal) )))) ;) }) while (parenthesized_expression "(puVar29 != q)" ( (binary_expression "puVar29 != q" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if ((int)q < 1) {\n        return;\n      }" if (parenthesized_expression "((int)q < 1)" ( (binary_expression "(int)q < 1" (cast_expression "(int)q" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "puVar29 = (uchar *)0x0;" (assignment_expression "puVar29 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);" (assignment_expression "dVar34 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00" identifier + number_literal) ))))) ;) (expression_statement "dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar35 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);" (assignment_expression "dVar33 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8" identifier + number_literal) ))))) ;) (expression_statement "dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar36 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165ecc;\nLAB_001660ec:\n          *puVar12 = uVar16;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660ec;\nLAB_00165ecc:\n          *puVar12 = uVar23;\n          puVar12[1] = uVar6;\n          puVar12[2] = uVar14;\n          puVar12[3] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165f54;\nLAB_0016611c:\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar20;\n          puVar12[6] = uVar22;\n          puVar12[7] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_0016611c;\nLAB_00165f54:\n          puVar12[4] = uVar23;\n          puVar12[5] = uVar6;\n          puVar12[6] = uVar14;\n          puVar12[7] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165fe8;\nLAB_001660b8:\n          puVar12[8] = uVar16;\n          puVar12[9] = uVar20;\n          puVar12[10] = uVar22;\n          puVar12[0xb] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660b8;\nLAB_00165fe8:\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar6;\n          puVar12[10] = uVar14;\n          puVar12[0xb] = uVar7;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar16 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar20 = 0;\nLAB_00165e14:\n          if (quantum_info->endian != LSBEndian) goto LAB_00165e24;\nLAB_00166084:\n          puVar12[0xc] = uVar16;\n          puVar12[0xd] = uVar14;\n          puVar12[0xe] = uVar6;\n          puVar12[0xf] = uVar20;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          if (dVar33 <= dVar37) {\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar37 = dVar37 + dVar36;\n          if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n            uVar25 = (uint)dVar37;\n          }\n          else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          uVar20 = (undefined1)(uVar25 >> 0x18);\n          uVar6 = (undefined1)(uVar25 >> 0x10);\n          uVar14 = (undefined1)(uVar25 >> 8);\n          uVar16 = (undefined1)uVar25;\n          if (quantum_info->endian == LSBEndian) goto LAB_00166084;\nLAB_00165e24:\n          puVar12[0xc] = uVar20;\n          puVar12[0xd] = uVar6;\n          puVar12[0xe] = uVar14;\n          puVar12[0xf] = uVar16;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        if (puVar29 == q) {\n          return;\n        }\n      } while( true );" do (compound_statement "{\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165ecc;\nLAB_001660ec:\n          *puVar12 = uVar16;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660ec;\nLAB_00165ecc:\n          *puVar12 = uVar23;\n          puVar12[1] = uVar6;\n          puVar12[2] = uVar14;\n          puVar12[3] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165f54;\nLAB_0016611c:\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar20;\n          puVar12[6] = uVar22;\n          puVar12[7] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_0016611c;\nLAB_00165f54:\n          puVar12[4] = uVar23;\n          puVar12[5] = uVar6;\n          puVar12[6] = uVar14;\n          puVar12[7] = uVar7;\n        }\n        fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);\n        if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165fe8;\nLAB_001660b8:\n          puVar12[8] = uVar16;\n          puVar12[9] = uVar20;\n          puVar12[10] = uVar22;\n          puVar12[0xb] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660b8;\nLAB_00165fe8:\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar6;\n          puVar12[10] = uVar14;\n          puVar12[0xb] = uVar7;\n        }\n        if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar16 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar20 = 0;\nLAB_00165e14:\n          if (quantum_info->endian != LSBEndian) goto LAB_00165e24;\nLAB_00166084:\n          puVar12[0xc] = uVar16;\n          puVar12[0xd] = uVar14;\n          puVar12[0xe] = uVar6;\n          puVar12[0xf] = uVar20;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          if (dVar33 <= dVar37) {\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar37 = dVar37 + dVar36;\n          if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n            uVar25 = (uint)dVar37;\n          }\n          else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          uVar20 = (undefined1)(uVar25 >> 0x18);\n          uVar6 = (undefined1)(uVar25 >> 0x10);\n          uVar14 = (undefined1)(uVar25 >> 8);\n          uVar16 = (undefined1)uVar25;\n          if (quantum_info->endian == LSBEndian) goto LAB_00166084;\nLAB_00165e24:\n          puVar12[0xc] = uVar20;\n          puVar12[0xd] = uVar6;\n          puVar12[0xe] = uVar14;\n          puVar12[0xf] = uVar16;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);\n        if (puVar29 == q) {\n          return;\n        }\n      }" { (expression_statement "iVar26 = (int)(number_pixels >> 0x20);" (assignment_expression "iVar26 = (int)(number_pixels >> 0x20)" identifier = (cast_expression "(int)(number_pixels >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(number_pixels >> 0x20)" ( (binary_expression "number_pixels >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "puVar12 = (undefined1 *)number_pixels;" (assignment_expression "puVar12 = (undefined1 *)number_pixels" identifier = (cast_expression "(undefined1 *)number_pixels" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + image->channel_map[2].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + image->channel_map[2].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[2].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[2].offset * 4" identifier + (binary_expression "image->channel_map[2].offset * 4" (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165ecc;\nLAB_001660ec:\n          *puVar12 = uVar16;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660ec;\nLAB_00165ecc:\n          *puVar12 = uVar23;\n          puVar12[1] = uVar6;\n          puVar12[2] = uVar14;\n          puVar12[3] = uVar7;\n        }" if (parenthesized_expression "(fVar42 <= 0.0)" ( (binary_expression "fVar42 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165ecc;\nLAB_001660ec:\n          *puVar12 = uVar16;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar24;\n        }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (if_statement "if (quantum_info->endian != LSBEndian) goto LAB_00165ecc;" 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_00165ecc;" goto statement_identifier ;)) (labeled_statement "LAB_001660ec:\n          *puVar12 = uVar16;" statement_identifier : (expression_statement "*puVar12 = uVar16;" (assignment_expression "*puVar12 = uVar16" (pointer_expression "*puVar12" * identifier) = identifier) ;)) (expression_statement "puVar12[1] = uVar20;" (assignment_expression "puVar12[1] = uVar20" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = uVar22;" (assignment_expression "puVar12[2] = uVar22" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = uVar24;" (assignment_expression "puVar12[3] = uVar24" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660ec;\nLAB_00165ecc:\n          *puVar12 = uVar23;\n          puVar12[1] = uVar6;\n          puVar12[2] = uVar14;\n          puVar12[3] = uVar7;\n        }" else (compound_statement "{\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660ec;\nLAB_00165ecc:\n          *puVar12 = uVar23;\n          puVar12[1] = uVar6;\n          puVar12[2] = uVar14;\n          puVar12[3] = uVar7;\n        }" { (expression_statement "dVar37 = (double)fVar42 * dVar34;" (assignment_expression "dVar37 = (double)fVar42 * dVar34" identifier = (binary_expression "(double)fVar42 * dVar34" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "uVar14 = 0xff;" (assignment_expression "uVar14 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }" if (parenthesized_expression "(dVar37 < dVar33)" ( (binary_expression "dVar37 < dVar33" identifier < identifier) )) (compound_statement "{\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }" { (expression_statement "dVar37 = dVar37 + dVar36;" (assignment_expression "dVar37 = dVar37 + dVar36" identifier = (binary_expression "dVar37 + dVar36" identifier + identifier)) ;) (if_statement "if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }" if (parenthesized_expression "(dVar37 < dVar35)" ( (binary_expression "dVar37 < dVar35" identifier < identifier) )) (compound_statement "{\n              uVar25 = (uint)dVar37;\n            }" { (expression_statement "uVar25 = (uint)dVar37;" (assignment_expression "uVar25 = (uint)dVar37" identifier = (cast_expression "(uint)dVar37" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }" else (compound_statement "{\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }" { (expression_statement "uVar25 = (int)(dVar37 - dVar35) | 0x80000000;" (assignment_expression "uVar25 = (int)(dVar37 - dVar35) | 0x80000000" identifier = (binary_expression "(int)(dVar37 - dVar35) | 0x80000000" (cast_expression "(int)(dVar37 - dVar35)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar37 - dVar35)" ( (binary_expression "dVar37 - dVar35" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "uVar23 = (undefined1)(uVar25 >> 0x18);" (assignment_expression "uVar23 = (undefined1)(uVar25 >> 0x18)" identifier = (call_expression "(undefined1)(uVar25 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 0x18)" ( (binary_expression "uVar25 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)(uVar25 >> 0x10);" (assignment_expression "uVar6 = (undefined1)(uVar25 >> 0x10)" identifier = (call_expression "(undefined1)(uVar25 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 0x10)" ( (binary_expression "uVar25 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)(uVar25 >> 8);" (assignment_expression "uVar14 = (undefined1)(uVar25 >> 8)" identifier = (call_expression "(undefined1)(uVar25 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 8)" ( (binary_expression "uVar25 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uVar7 = (undefined1)uVar25;" (assignment_expression "uVar7 = (undefined1)uVar25" identifier = (cast_expression "(undefined1)uVar25" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }" else (compound_statement "{\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }" { (expression_statement "uVar7 = 0xff;" (assignment_expression "uVar7 = 0xff" identifier = number_literal) ;) (expression_statement "uVar6 = 0xff;" (assignment_expression "uVar6 = 0xff" identifier = number_literal) ;) (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) }))) (expression_statement "uVar16 = uVar7;" (assignment_expression "uVar16 = uVar7" identifier = identifier) ;) (expression_statement "uVar20 = uVar14;" (assignment_expression "uVar20 = uVar14" identifier = identifier) ;) (expression_statement "uVar22 = uVar6;" (assignment_expression "uVar22 = uVar6" identifier = identifier) ;) (expression_statement "uVar24 = uVar23;" (assignment_expression "uVar24 = uVar23" identifier = identifier) ;) (if_statement "if (quantum_info->endian == LSBEndian) goto LAB_001660ec;" 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_001660ec;" goto statement_identifier ;)) (labeled_statement "LAB_00165ecc:\n          *puVar12 = uVar23;" statement_identifier : (expression_statement "*puVar12 = uVar23;" (assignment_expression "*puVar12 = uVar23" (pointer_expression "*puVar12" * identifier) = identifier) ;)) (expression_statement "puVar12[1] = uVar6;" (assignment_expression "puVar12[1] = uVar6" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = uVar14;" (assignment_expression "puVar12[2] = uVar14" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = uVar7;" (assignment_expression "puVar12[3] = uVar7" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + image->channel_map[1].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + image->channel_map[1].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[1].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[1].offset * 4" identifier + (binary_expression "image->channel_map[1].offset * 4" (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165f54;\nLAB_0016611c:\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar20;\n          puVar12[6] = uVar22;\n          puVar12[7] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_0016611c;\nLAB_00165f54:\n          puVar12[4] = uVar23;\n          puVar12[5] = uVar6;\n          puVar12[6] = uVar14;\n          puVar12[7] = uVar7;\n        }" if (parenthesized_expression "(fVar42 <= 0.0)" ( (binary_expression "fVar42 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165f54;\nLAB_0016611c:\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar20;\n          puVar12[6] = uVar22;\n          puVar12[7] = uVar24;\n        }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (if_statement "if (quantum_info->endian != LSBEndian) goto LAB_00165f54;" 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_00165f54;" goto statement_identifier ;)) (labeled_statement "LAB_0016611c:\n          puVar12[4] = uVar16;" statement_identifier : (expression_statement "puVar12[4] = uVar16;" (assignment_expression "puVar12[4] = uVar16" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar12[5] = uVar20;" (assignment_expression "puVar12[5] = uVar20" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[6] = uVar22;" (assignment_expression "puVar12[6] = uVar22" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[7] = uVar24;" (assignment_expression "puVar12[7] = uVar24" (subscript_expression "puVar12[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_0016611c;\nLAB_00165f54:\n          puVar12[4] = uVar23;\n          puVar12[5] = uVar6;\n          puVar12[6] = uVar14;\n          puVar12[7] = uVar7;\n        }" else (compound_statement "{\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_0016611c;\nLAB_00165f54:\n          puVar12[4] = uVar23;\n          puVar12[5] = uVar6;\n          puVar12[6] = uVar14;\n          puVar12[7] = uVar7;\n        }" { (expression_statement "dVar37 = (double)fVar42 * dVar34;" (assignment_expression "dVar37 = (double)fVar42 * dVar34" identifier = (binary_expression "(double)fVar42 * dVar34" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "uVar14 = 0xff;" (assignment_expression "uVar14 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }" if (parenthesized_expression "(dVar37 < dVar33)" ( (binary_expression "dVar37 < dVar33" identifier < identifier) )) (compound_statement "{\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }" { (expression_statement "dVar37 = dVar37 + dVar36;" (assignment_expression "dVar37 = dVar37 + dVar36" identifier = (binary_expression "dVar37 + dVar36" identifier + identifier)) ;) (if_statement "if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }" if (parenthesized_expression "(dVar37 < dVar35)" ( (binary_expression "dVar37 < dVar35" identifier < identifier) )) (compound_statement "{\n              uVar25 = (uint)dVar37;\n            }" { (expression_statement "uVar25 = (uint)dVar37;" (assignment_expression "uVar25 = (uint)dVar37" identifier = (cast_expression "(uint)dVar37" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }" else (compound_statement "{\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }" { (expression_statement "uVar25 = (int)(dVar37 - dVar35) | 0x80000000;" (assignment_expression "uVar25 = (int)(dVar37 - dVar35) | 0x80000000" identifier = (binary_expression "(int)(dVar37 - dVar35) | 0x80000000" (cast_expression "(int)(dVar37 - dVar35)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar37 - dVar35)" ( (binary_expression "dVar37 - dVar35" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "uVar23 = (undefined1)(uVar25 >> 0x18);" (assignment_expression "uVar23 = (undefined1)(uVar25 >> 0x18)" identifier = (call_expression "(undefined1)(uVar25 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 0x18)" ( (binary_expression "uVar25 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)(uVar25 >> 0x10);" (assignment_expression "uVar6 = (undefined1)(uVar25 >> 0x10)" identifier = (call_expression "(undefined1)(uVar25 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 0x10)" ( (binary_expression "uVar25 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)(uVar25 >> 8);" (assignment_expression "uVar14 = (undefined1)(uVar25 >> 8)" identifier = (call_expression "(undefined1)(uVar25 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 8)" ( (binary_expression "uVar25 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uVar7 = (undefined1)uVar25;" (assignment_expression "uVar7 = (undefined1)uVar25" identifier = (cast_expression "(undefined1)uVar25" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }" else (compound_statement "{\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }" { (expression_statement "uVar7 = 0xff;" (assignment_expression "uVar7 = 0xff" identifier = number_literal) ;) (expression_statement "uVar6 = 0xff;" (assignment_expression "uVar6 = 0xff" identifier = number_literal) ;) (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) }))) (expression_statement "uVar16 = uVar7;" (assignment_expression "uVar16 = uVar7" identifier = identifier) ;) (expression_statement "uVar20 = uVar14;" (assignment_expression "uVar20 = uVar14" identifier = identifier) ;) (expression_statement "uVar22 = uVar6;" (assignment_expression "uVar22 = uVar6" identifier = identifier) ;) (expression_statement "uVar24 = uVar23;" (assignment_expression "uVar24 = uVar23" identifier = identifier) ;) (if_statement "if (quantum_info->endian == LSBEndian) goto LAB_0016611c;" 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_0016611c;" goto statement_identifier ;)) (labeled_statement "LAB_00165f54:\n          puVar12[4] = uVar23;" statement_identifier : (expression_statement "puVar12[4] = uVar23;" (assignment_expression "puVar12[4] = uVar23" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar12[5] = uVar6;" (assignment_expression "puVar12[5] = uVar6" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[6] = uVar14;" (assignment_expression "puVar12[6] = uVar14" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[7] = uVar7;" (assignment_expression "puVar12[7] = uVar7" (subscript_expression "puVar12[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + image->channel_map->offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + image->channel_map->offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map->offset * 4)" ( (binary_expression "iVar26 + image->channel_map->offset * 4" identifier + (binary_expression "image->channel_map->offset * 4" (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) * number_literal)) ))))) ;) (if_statement "if (fVar42 <= 0.0) {\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165fe8;\nLAB_001660b8:\n          puVar12[8] = uVar16;\n          puVar12[9] = uVar20;\n          puVar12[10] = uVar22;\n          puVar12[0xb] = uVar24;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660b8;\nLAB_00165fe8:\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar6;\n          puVar12[10] = uVar14;\n          puVar12[0xb] = uVar7;\n        }" if (parenthesized_expression "(fVar42 <= 0.0)" ( (binary_expression "fVar42 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          uVar7 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar23 = 0;\n          uVar16 = 0;\n          uVar20 = 0;\n          uVar22 = 0;\n          uVar24 = 0;\n          if (quantum_info->endian != LSBEndian) goto LAB_00165fe8;\nLAB_001660b8:\n          puVar12[8] = uVar16;\n          puVar12[9] = uVar20;\n          puVar12[10] = uVar22;\n          puVar12[0xb] = uVar24;\n        }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (if_statement "if (quantum_info->endian != LSBEndian) goto LAB_00165fe8;" 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_00165fe8;" goto statement_identifier ;)) (labeled_statement "LAB_001660b8:\n          puVar12[8] = uVar16;" statement_identifier : (expression_statement "puVar12[8] = uVar16;" (assignment_expression "puVar12[8] = uVar16" (subscript_expression "puVar12[8]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar12[9] = uVar20;" (assignment_expression "puVar12[9] = uVar20" (subscript_expression "puVar12[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[10] = uVar22;" (assignment_expression "puVar12[10] = uVar22" (subscript_expression "puVar12[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xb] = uVar24;" (assignment_expression "puVar12[0xb] = uVar24" (subscript_expression "puVar12[0xb]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660b8;\nLAB_00165fe8:\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar6;\n          puVar12[10] = uVar14;\n          puVar12[0xb] = uVar7;\n        }" else (compound_statement "{\n          dVar37 = (double)fVar42 * dVar34;\n          uVar14 = 0xff;\n          if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }\n          uVar16 = uVar7;\n          uVar20 = uVar14;\n          uVar22 = uVar6;\n          uVar24 = uVar23;\n          if (quantum_info->endian == LSBEndian) goto LAB_001660b8;\nLAB_00165fe8:\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar6;\n          puVar12[10] = uVar14;\n          puVar12[0xb] = uVar7;\n        }" { (expression_statement "dVar37 = (double)fVar42 * dVar34;" (assignment_expression "dVar37 = (double)fVar42 * dVar34" identifier = (binary_expression "(double)fVar42 * dVar34" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "uVar14 = 0xff;" (assignment_expression "uVar14 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar37 < dVar33) {\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }\n          else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }" if (parenthesized_expression "(dVar37 < dVar33)" ( (binary_expression "dVar37 < dVar33" identifier < identifier) )) (compound_statement "{\n            dVar37 = dVar37 + dVar36;\n            if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }\n            uVar23 = (undefined1)(uVar25 >> 0x18);\n            uVar6 = (undefined1)(uVar25 >> 0x10);\n            uVar14 = (undefined1)(uVar25 >> 8);\n            uVar7 = (undefined1)uVar25;\n          }" { (expression_statement "dVar37 = dVar37 + dVar36;" (assignment_expression "dVar37 = dVar37 + dVar36" identifier = (binary_expression "dVar37 + dVar36" identifier + identifier)) ;) (if_statement "if (dVar37 < dVar35) {\n              uVar25 = (uint)dVar37;\n            }\n            else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }" if (parenthesized_expression "(dVar37 < dVar35)" ( (binary_expression "dVar37 < dVar35" identifier < identifier) )) (compound_statement "{\n              uVar25 = (uint)dVar37;\n            }" { (expression_statement "uVar25 = (uint)dVar37;" (assignment_expression "uVar25 = (uint)dVar37" identifier = (cast_expression "(uint)dVar37" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }" else (compound_statement "{\n              uVar25 = (int)(dVar37 - dVar35) | 0x80000000;\n            }" { (expression_statement "uVar25 = (int)(dVar37 - dVar35) | 0x80000000;" (assignment_expression "uVar25 = (int)(dVar37 - dVar35) | 0x80000000" identifier = (binary_expression "(int)(dVar37 - dVar35) | 0x80000000" (cast_expression "(int)(dVar37 - dVar35)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar37 - dVar35)" ( (binary_expression "dVar37 - dVar35" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "uVar23 = (undefined1)(uVar25 >> 0x18);" (assignment_expression "uVar23 = (undefined1)(uVar25 >> 0x18)" identifier = (call_expression "(undefined1)(uVar25 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 0x18)" ( (binary_expression "uVar25 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)(uVar25 >> 0x10);" (assignment_expression "uVar6 = (undefined1)(uVar25 >> 0x10)" identifier = (call_expression "(undefined1)(uVar25 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 0x10)" ( (binary_expression "uVar25 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)(uVar25 >> 8);" (assignment_expression "uVar14 = (undefined1)(uVar25 >> 8)" identifier = (call_expression "(undefined1)(uVar25 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 8)" ( (binary_expression "uVar25 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uVar7 = (undefined1)uVar25;" (assignment_expression "uVar7 = (undefined1)uVar25" identifier = (cast_expression "(undefined1)uVar25" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }" else (compound_statement "{\n            uVar7 = 0xff;\n            uVar6 = 0xff;\n            uVar23 = 0xff;\n          }" { (expression_statement "uVar7 = 0xff;" (assignment_expression "uVar7 = 0xff" identifier = number_literal) ;) (expression_statement "uVar6 = 0xff;" (assignment_expression "uVar6 = 0xff" identifier = number_literal) ;) (expression_statement "uVar23 = 0xff;" (assignment_expression "uVar23 = 0xff" identifier = number_literal) ;) }))) (expression_statement "uVar16 = uVar7;" (assignment_expression "uVar16 = uVar7" identifier = identifier) ;) (expression_statement "uVar20 = uVar14;" (assignment_expression "uVar20 = uVar14" identifier = identifier) ;) (expression_statement "uVar22 = uVar6;" (assignment_expression "uVar22 = uVar6" identifier = identifier) ;) (expression_statement "uVar24 = uVar23;" (assignment_expression "uVar24 = uVar23" identifier = identifier) ;) (if_statement "if (quantum_info->endian == LSBEndian) goto LAB_001660b8;" 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_001660b8;" goto statement_identifier ;)) (labeled_statement "LAB_00165fe8:\n          puVar12[8] = uVar23;" statement_identifier : (expression_statement "puVar12[8] = uVar23;" (assignment_expression "puVar12[8] = uVar23" (subscript_expression "puVar12[8]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar12[9] = uVar6;" (assignment_expression "puVar12[9] = uVar6" (subscript_expression "puVar12[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[10] = uVar14;" (assignment_expression "puVar12[10] = uVar14" (subscript_expression "puVar12[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xb] = uVar7;" (assignment_expression "puVar12[0xb] = uVar7" (subscript_expression "puVar12[0xb]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))\n        {\n          uVar16 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar20 = 0;\nLAB_00165e14:\n          if (quantum_info->endian != LSBEndian) goto LAB_00165e24;\nLAB_00166084:\n          puVar12[0xc] = uVar16;\n          puVar12[0xd] = uVar14;\n          puVar12[0xe] = uVar6;\n          puVar12[0xf] = uVar20;\n        }\n        else {\n          dVar37 = (double)fVar42 * dVar34;\n          if (dVar33 <= dVar37) {\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar37 = dVar37 + dVar36;\n          if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n            uVar25 = (uint)dVar37;\n          }\n          else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          uVar20 = (undefined1)(uVar25 >> 0x18);\n          uVar6 = (undefined1)(uVar25 >> 0x10);\n          uVar14 = (undefined1)(uVar25 >> 8);\n          uVar16 = (undefined1)uVar25;\n          if (quantum_info->endian == LSBEndian) goto LAB_00166084;\nLAB_00165e24:\n          puVar12[0xc] = uVar20;\n          puVar12[0xd] = uVar6;\n          puVar12[0xe] = uVar14;\n          puVar12[0xf] = uVar16;\n        }" if (parenthesized_expression "((image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0))" ( (binary_expression "(image->channel_map[4].traits != BlendPixelTrait) ||\n           (fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 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 "(fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0)" ( (comma_expression "fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4), fVar42 <= 0.0" (assignment_expression "fVar42 = fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4)" identifier = (binary_expression "fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4)" identifier - (pointer_expression "*(float *)(iVar26 + image->channel_map[4].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[4].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[4].offset * 4" identifier + (binary_expression "image->channel_map[4].offset * 4" (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) )))))) , (binary_expression "fVar42 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n          uVar16 = 0;\n          uVar14 = 0;\n          uVar6 = 0;\n          uVar20 = 0;\nLAB_00165e14:\n          if (quantum_info->endian != LSBEndian) goto LAB_00165e24;\nLAB_00166084:\n          puVar12[0xc] = uVar16;\n          puVar12[0xd] = uVar14;\n          puVar12[0xe] = uVar6;\n          puVar12[0xf] = uVar20;\n        }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00165e14:\n          if (quantum_info->endian != LSBEndian) goto LAB_00165e24;" statement_identifier : (if_statement "if (quantum_info->endian != LSBEndian) goto LAB_00165e24;" 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_00165e24;" goto statement_identifier ;))) (labeled_statement "LAB_00166084:\n          puVar12[0xc] = uVar16;" statement_identifier : (expression_statement "puVar12[0xc] = uVar16;" (assignment_expression "puVar12[0xc] = uVar16" (subscript_expression "puVar12[0xc]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar12[0xd] = uVar14;" (assignment_expression "puVar12[0xd] = uVar14" (subscript_expression "puVar12[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xe] = uVar6;" (assignment_expression "puVar12[0xe] = uVar6" (subscript_expression "puVar12[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xf] = uVar20;" (assignment_expression "puVar12[0xf] = uVar20" (subscript_expression "puVar12[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          dVar37 = (double)fVar42 * dVar34;\n          if (dVar33 <= dVar37) {\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar37 = dVar37 + dVar36;\n          if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n            uVar25 = (uint)dVar37;\n          }\n          else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          uVar20 = (undefined1)(uVar25 >> 0x18);\n          uVar6 = (undefined1)(uVar25 >> 0x10);\n          uVar14 = (undefined1)(uVar25 >> 8);\n          uVar16 = (undefined1)uVar25;\n          if (quantum_info->endian == LSBEndian) goto LAB_00166084;\nLAB_00165e24:\n          puVar12[0xc] = uVar20;\n          puVar12[0xd] = uVar6;\n          puVar12[0xe] = uVar14;\n          puVar12[0xf] = uVar16;\n        }" else (compound_statement "{\n          dVar37 = (double)fVar42 * dVar34;\n          if (dVar33 <= dVar37) {\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar37 = dVar37 + dVar36;\n          if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n            uVar25 = (uint)dVar37;\n          }\n          else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          uVar20 = (undefined1)(uVar25 >> 0x18);\n          uVar6 = (undefined1)(uVar25 >> 0x10);\n          uVar14 = (undefined1)(uVar25 >> 8);\n          uVar16 = (undefined1)uVar25;\n          if (quantum_info->endian == LSBEndian) goto LAB_00166084;\nLAB_00165e24:\n          puVar12[0xc] = uVar20;\n          puVar12[0xd] = uVar6;\n          puVar12[0xe] = uVar14;\n          puVar12[0xf] = uVar16;\n        }" { (expression_statement "dVar37 = (double)fVar42 * dVar34;" (assignment_expression "dVar37 = (double)fVar42 * dVar34" identifier = (binary_expression "(double)fVar42 * dVar34" (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (if_statement "if (dVar33 <= dVar37) {\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }" if (parenthesized_expression "(dVar33 <= dVar37)" ( (binary_expression "dVar33 <= dVar37" identifier <= identifier) )) (compound_statement "{\n            uVar16 = 0xff;\n            uVar14 = 0xff;\n            uVar6 = 0xff;\n            uVar20 = 0xff;\n            goto LAB_00165e14;\n          }" { (expression_statement "uVar16 = 0xff;" (assignment_expression "uVar16 = 0xff" identifier = number_literal) ;) (expression_statement "uVar14 = 0xff;" (assignment_expression "uVar14 = 0xff" identifier = number_literal) ;) (expression_statement "uVar6 = 0xff;" (assignment_expression "uVar6 = 0xff" identifier = number_literal) ;) (expression_statement "uVar20 = 0xff;" (assignment_expression "uVar20 = 0xff" identifier = number_literal) ;) (goto_statement "goto LAB_00165e14;" goto statement_identifier ;) })) (expression_statement "dVar37 = dVar37 + dVar36;" (assignment_expression "dVar37 = dVar37 + dVar36" identifier = (binary_expression "dVar37 + dVar36" identifier + identifier)) ;) (if_statement "if (dVar37 < *(double *)(puVar2 + 0x1410)) {\n            uVar25 = (uint)dVar37;\n          }\n          else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }" if (parenthesized_expression "(dVar37 < *(double *)(puVar2 + 0x1410))" ( (binary_expression "dVar37 < *(double *)(puVar2 + 0x1410)" identifier < (pointer_expression "*(double *)(puVar2 + 0x1410)" * (cast_expression "(double *)(puVar2 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1410)" ( (binary_expression "puVar2 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n            uVar25 = (uint)dVar37;\n          }" { (expression_statement "uVar25 = (uint)dVar37;" (assignment_expression "uVar25 = (uint)dVar37" identifier = (cast_expression "(uint)dVar37" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }" else (compound_statement "{\n            uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }" { (expression_statement "uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000;" (assignment_expression "uVar25 = (int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar37 - *(double *)(puVar2 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar37 - *(double *)(puVar2 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar37 - *(double *)(puVar2 + 0x1410))" ( (binary_expression "dVar37 - *(double *)(puVar2 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar2 + 0x1410)" * (cast_expression "(double *)(puVar2 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1410)" ( (binary_expression "puVar2 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "uVar20 = (undefined1)(uVar25 >> 0x18);" (assignment_expression "uVar20 = (undefined1)(uVar25 >> 0x18)" identifier = (call_expression "(undefined1)(uVar25 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 0x18)" ( (binary_expression "uVar25 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)(uVar25 >> 0x10);" (assignment_expression "uVar6 = (undefined1)(uVar25 >> 0x10)" identifier = (call_expression "(undefined1)(uVar25 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 0x10)" ( (binary_expression "uVar25 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)(uVar25 >> 8);" (assignment_expression "uVar14 = (undefined1)(uVar25 >> 8)" identifier = (call_expression "(undefined1)(uVar25 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(uVar25 >> 8)" ( (binary_expression "uVar25 >> 8" identifier >> number_literal) )))) ;) (expression_statement "uVar16 = (undefined1)uVar25;" (assignment_expression "uVar16 = (undefined1)uVar25" identifier = (cast_expression "(undefined1)uVar25" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (quantum_info->endian == LSBEndian) goto LAB_00166084;" 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_00166084;" goto statement_identifier ;)) (labeled_statement "LAB_00165e24:\n          puVar12[0xc] = uVar20;" statement_identifier : (expression_statement "puVar12[0xc] = uVar20;" (assignment_expression "puVar12[0xc] = uVar20" (subscript_expression "puVar12[0xc]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar12[0xd] = uVar6;" (assignment_expression "puVar12[0xd] = uVar6" (subscript_expression "puVar12[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xe] = uVar14;" (assignment_expression "puVar12[0xe] = uVar14" (subscript_expression "puVar12[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xf] = uVar16;" (assignment_expression "puVar12[0xf] = uVar16" (subscript_expression "puVar12[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (expression_statement "number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10);" (assignment_expression "number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10)" identifier = (call_expression "CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10)" identifier (argument_list "(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x10)" ( (binary_expression "iVar26 + image->number_channels * 4" identifier + (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal)) , (binary_expression "puVar12 + quantum_info->pad + 0x10" (binary_expression "puVar12 + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal) )))) ;) (if_statement "if (puVar29 == q) {\n          return;\n        }" if (parenthesized_expression "(puVar29 == q)" ( (binary_expression "puVar29 == q" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (uVar25 != 0x40) goto LAB_00165538;" if (parenthesized_expression "(uVar25 != 0x40)" ( (binary_expression "uVar25 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_00165538;" goto statement_identifier ;)) (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n      if ((int)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x20);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          *puVar12 = uVar14;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar6;\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar24;\n          puVar12[6] = uVar7;\n          puVar12[7] = SUB81(dVar33,0);\n        }\n        else {\n          *puVar12 = SUB81(dVar33,0);\n          puVar12[1] = uVar7;\n          puVar12[2] = uVar24;\n          puVar12[3] = uVar16;\n          puVar12[4] = uVar6;\n          puVar12[5] = uVar22;\n          puVar12[6] = uVar20;\n          puVar12[7] = uVar14;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[8] = uVar6;\n          puVar12[9] = uVar16;\n          puVar12[10] = uVar20;\n          puVar12[0xb] = uVar22;\n          puVar12[0xc] = uVar14;\n          puVar12[0xd] = uVar24;\n          puVar12[0xe] = uVar7;\n          puVar12[0xf] = uVar23;\n        }\n        else {\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar7;\n          puVar12[10] = uVar24;\n          puVar12[0xb] = uVar14;\n          puVar12[0xc] = uVar22;\n          puVar12[0xd] = uVar20;\n          puVar12[0xe] = uVar16;\n          puVar12[0xf] = uVar6;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x10] = uVar6;\n          puVar12[0x11] = uVar16;\n          puVar12[0x12] = uVar20;\n          puVar12[0x13] = uVar22;\n          puVar12[0x14] = uVar14;\n          puVar12[0x15] = uVar24;\n          puVar12[0x16] = uVar7;\n          puVar12[0x17] = uVar23;\n        }\n        else {\n          puVar12[0x10] = uVar23;\n          puVar12[0x11] = uVar7;\n          puVar12[0x12] = uVar24;\n          puVar12[0x13] = uVar14;\n          puVar12[0x14] = uVar22;\n          puVar12[0x15] = uVar20;\n          puVar12[0x16] = uVar16;\n          puVar12[0x17] = uVar6;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n        }\n        else {\n          dVar33 = 0.0;\n        }\n        dVar33 = dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x18] = uVar6;\n          puVar12[0x19] = uVar16;\n          puVar12[0x1a] = uVar20;\n          puVar12[0x1b] = uVar22;\n          puVar12[0x1c] = uVar14;\n          puVar12[0x1d] = uVar24;\n          puVar12[0x1e] = uVar7;\n          puVar12[0x1f] = uVar23;\n        }\n        else {\n          puVar12[0x18] = uVar23;\n          puVar12[0x19] = uVar7;\n          puVar12[0x1a] = uVar24;\n          puVar12[0x1b] = uVar14;\n          puVar12[0x1c] = uVar22;\n          puVar12[0x1d] = uVar20;\n          puVar12[0x1e] = uVar16;\n          puVar12[0x1f] = uVar6;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20);\n      } while (puVar29 != q);\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)q < 1) {\n        return;\n      }\n      puVar29 = (uchar *)0x0;\n      fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x20);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          *puVar12 = uVar14;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar6;\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar24;\n          puVar12[6] = uVar7;\n          puVar12[7] = SUB81(dVar33,0);\n        }\n        else {\n          *puVar12 = SUB81(dVar33,0);\n          puVar12[1] = uVar7;\n          puVar12[2] = uVar24;\n          puVar12[3] = uVar16;\n          puVar12[4] = uVar6;\n          puVar12[5] = uVar22;\n          puVar12[6] = uVar20;\n          puVar12[7] = uVar14;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[8] = uVar6;\n          puVar12[9] = uVar16;\n          puVar12[10] = uVar20;\n          puVar12[0xb] = uVar22;\n          puVar12[0xc] = uVar14;\n          puVar12[0xd] = uVar24;\n          puVar12[0xe] = uVar7;\n          puVar12[0xf] = uVar23;\n        }\n        else {\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar7;\n          puVar12[10] = uVar24;\n          puVar12[0xb] = uVar14;\n          puVar12[0xc] = uVar22;\n          puVar12[0xd] = uVar20;\n          puVar12[0xe] = uVar16;\n          puVar12[0xf] = uVar6;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x10] = uVar6;\n          puVar12[0x11] = uVar16;\n          puVar12[0x12] = uVar20;\n          puVar12[0x13] = uVar22;\n          puVar12[0x14] = uVar14;\n          puVar12[0x15] = uVar24;\n          puVar12[0x16] = uVar7;\n          puVar12[0x17] = uVar23;\n        }\n        else {\n          puVar12[0x10] = uVar23;\n          puVar12[0x11] = uVar7;\n          puVar12[0x12] = uVar24;\n          puVar12[0x13] = uVar14;\n          puVar12[0x14] = uVar22;\n          puVar12[0x15] = uVar20;\n          puVar12[0x16] = uVar16;\n          puVar12[0x17] = uVar6;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n        }\n        else {\n          dVar33 = 0.0;\n        }\n        dVar33 = dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x18] = uVar6;\n          puVar12[0x19] = uVar16;\n          puVar12[0x1a] = uVar20;\n          puVar12[0x1b] = uVar22;\n          puVar12[0x1c] = uVar14;\n          puVar12[0x1d] = uVar24;\n          puVar12[0x1e] = uVar7;\n          puVar12[0x1f] = uVar23;\n        }\n        else {\n          puVar12[0x18] = uVar23;\n          puVar12[0x19] = uVar7;\n          puVar12[0x1a] = uVar24;\n          puVar12[0x1b] = uVar14;\n          puVar12[0x1c] = uVar22;\n          puVar12[0x1d] = uVar20;\n          puVar12[0x1e] = uVar16;\n          puVar12[0x1f] = uVar6;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20);\n      } while (puVar29 != q);\n      return;\n    }" { (if_statement "if ((int)q < 1) {\n        return;\n      }" if (parenthesized_expression "((int)q < 1)" ( (binary_expression "(int)q < 1" (cast_expression "(int)q" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "puVar29 = (uchar *)0x0;" (assignment_expression "puVar29 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x20);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          *puVar12 = uVar14;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar6;\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar24;\n          puVar12[6] = uVar7;\n          puVar12[7] = SUB81(dVar33,0);\n        }\n        else {\n          *puVar12 = SUB81(dVar33,0);\n          puVar12[1] = uVar7;\n          puVar12[2] = uVar24;\n          puVar12[3] = uVar16;\n          puVar12[4] = uVar6;\n          puVar12[5] = uVar22;\n          puVar12[6] = uVar20;\n          puVar12[7] = uVar14;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[8] = uVar6;\n          puVar12[9] = uVar16;\n          puVar12[10] = uVar20;\n          puVar12[0xb] = uVar22;\n          puVar12[0xc] = uVar14;\n          puVar12[0xd] = uVar24;\n          puVar12[0xe] = uVar7;\n          puVar12[0xf] = uVar23;\n        }\n        else {\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar7;\n          puVar12[10] = uVar24;\n          puVar12[0xb] = uVar14;\n          puVar12[0xc] = uVar22;\n          puVar12[0xd] = uVar20;\n          puVar12[0xe] = uVar16;\n          puVar12[0xf] = uVar6;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x10] = uVar6;\n          puVar12[0x11] = uVar16;\n          puVar12[0x12] = uVar20;\n          puVar12[0x13] = uVar22;\n          puVar12[0x14] = uVar14;\n          puVar12[0x15] = uVar24;\n          puVar12[0x16] = uVar7;\n          puVar12[0x17] = uVar23;\n        }\n        else {\n          puVar12[0x10] = uVar23;\n          puVar12[0x11] = uVar7;\n          puVar12[0x12] = uVar24;\n          puVar12[0x13] = uVar14;\n          puVar12[0x14] = uVar22;\n          puVar12[0x15] = uVar20;\n          puVar12[0x16] = uVar16;\n          puVar12[0x17] = uVar6;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n        }\n        else {\n          dVar33 = 0.0;\n        }\n        dVar33 = dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x18] = uVar6;\n          puVar12[0x19] = uVar16;\n          puVar12[0x1a] = uVar20;\n          puVar12[0x1b] = uVar22;\n          puVar12[0x1c] = uVar14;\n          puVar12[0x1d] = uVar24;\n          puVar12[0x1e] = uVar7;\n          puVar12[0x1f] = uVar23;\n        }\n        else {\n          puVar12[0x18] = uVar23;\n          puVar12[0x19] = uVar7;\n          puVar12[0x1a] = uVar24;\n          puVar12[0x1b] = uVar14;\n          puVar12[0x1c] = uVar22;\n          puVar12[0x1d] = uVar20;\n          puVar12[0x1e] = uVar16;\n          puVar12[0x1f] = uVar6;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20);\n      } while (puVar29 != q);" do (compound_statement "{\n        iVar26 = (int)(number_pixels >> 0x20);\n        puVar12 = (undefined1 *)number_pixels;\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x20);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          *puVar12 = uVar14;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar6;\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar24;\n          puVar12[6] = uVar7;\n          puVar12[7] = SUB81(dVar33,0);\n        }\n        else {\n          *puVar12 = SUB81(dVar33,0);\n          puVar12[1] = uVar7;\n          puVar12[2] = uVar24;\n          puVar12[3] = uVar16;\n          puVar12[4] = uVar6;\n          puVar12[5] = uVar22;\n          puVar12[6] = uVar20;\n          puVar12[7] = uVar14;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[8] = uVar6;\n          puVar12[9] = uVar16;\n          puVar12[10] = uVar20;\n          puVar12[0xb] = uVar22;\n          puVar12[0xc] = uVar14;\n          puVar12[0xd] = uVar24;\n          puVar12[0xe] = uVar7;\n          puVar12[0xf] = uVar23;\n        }\n        else {\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar7;\n          puVar12[10] = uVar24;\n          puVar12[0xb] = uVar14;\n          puVar12[0xc] = uVar22;\n          puVar12[0xd] = uVar20;\n          puVar12[0xe] = uVar16;\n          puVar12[0xf] = uVar6;\n        }\n        dVar33 = (double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x10] = uVar6;\n          puVar12[0x11] = uVar16;\n          puVar12[0x12] = uVar20;\n          puVar12[0x13] = uVar22;\n          puVar12[0x14] = uVar14;\n          puVar12[0x15] = uVar24;\n          puVar12[0x16] = uVar7;\n          puVar12[0x17] = uVar23;\n        }\n        else {\n          puVar12[0x10] = uVar23;\n          puVar12[0x11] = uVar7;\n          puVar12[0x12] = uVar24;\n          puVar12[0x13] = uVar14;\n          puVar12[0x14] = uVar22;\n          puVar12[0x15] = uVar20;\n          puVar12[0x16] = uVar16;\n          puVar12[0x17] = uVar6;\n        }\n        if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n        }\n        else {\n          dVar33 = 0.0;\n        }\n        dVar33 = dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum;\n        uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);\n        uVar7 = (undefined1)((ulonglong)dVar33 >> 8);\n        uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);\n        uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);\n        uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);\n        uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);\n        uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);\n        uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);\n        if (quantum_info->endian == LSBEndian) {\n          puVar12[0x18] = uVar6;\n          puVar12[0x19] = uVar16;\n          puVar12[0x1a] = uVar20;\n          puVar12[0x1b] = uVar22;\n          puVar12[0x1c] = uVar14;\n          puVar12[0x1d] = uVar24;\n          puVar12[0x1e] = uVar7;\n          puVar12[0x1f] = uVar23;\n        }\n        else {\n          puVar12[0x18] = uVar23;\n          puVar12[0x19] = uVar7;\n          puVar12[0x1a] = uVar24;\n          puVar12[0x1b] = uVar14;\n          puVar12[0x1c] = uVar22;\n          puVar12[0x1d] = uVar20;\n          puVar12[0x1e] = uVar16;\n          puVar12[0x1f] = uVar6;\n        }\n        puVar29 = puVar29 + 1;\n        number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20);\n      }" { (expression_statement "iVar26 = (int)(number_pixels >> 0x20);" (assignment_expression "iVar26 = (int)(number_pixels >> 0x20)" identifier = (cast_expression "(int)(number_pixels >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(number_pixels >> 0x20)" ( (binary_expression "number_pixels >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "puVar12 = (undefined1 *)number_pixels;" (assignment_expression "puVar12 = (undefined1 *)number_pixels" identifier = (cast_expression "(undefined1 *)number_pixels" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "dVar33 = (double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;" (assignment_expression "dVar33 = (double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum" identifier = (binary_expression "(double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum" (binary_expression "(double)*(float *)(iVar26 + image->channel_map->offset * 4) *\n                 (quantum_info->state).inverse_scale" (cast_expression "(double)*(float *)(iVar26 + image->channel_map->offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar26 + image->channel_map->offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map->offset * 4)" ( (binary_expression "iVar26 + image->channel_map->offset * 4" identifier + (binary_expression "image->channel_map->offset * 4" (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) * number_literal)) ))))) * (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 "uVar6 = (undefined1)((ulonglong)dVar33 >> 0x20);" (assignment_expression "uVar6 = (undefined1)((ulonglong)dVar33 >> 0x20)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x20)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x20)" ( (binary_expression "(ulonglong)dVar33 >> 0x20" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar7 = (undefined1)((ulonglong)dVar33 >> 8);" (assignment_expression "uVar7 = (undefined1)((ulonglong)dVar33 >> 8)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 8)" ( (binary_expression "(ulonglong)dVar33 >> 8" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);" (assignment_expression "uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x10)" ( (binary_expression "(ulonglong)dVar33 >> 0x10" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar16 = (undefined1)((ulonglong)dVar33 >> 0x18);" (assignment_expression "uVar16 = (undefined1)((ulonglong)dVar33 >> 0x18)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x18)" ( (binary_expression "(ulonglong)dVar33 >> 0x18" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar22 = (undefined1)((ulonglong)dVar33 >> 0x28);" (assignment_expression "uVar22 = (undefined1)((ulonglong)dVar33 >> 0x28)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x28)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x28)" ( (binary_expression "(ulonglong)dVar33 >> 0x28" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar20 = (undefined1)((ulonglong)dVar33 >> 0x30);" (assignment_expression "uVar20 = (undefined1)((ulonglong)dVar33 >> 0x30)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x30)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x30)" ( (binary_expression "(ulonglong)dVar33 >> 0x30" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)((ulonglong)dVar33 >> 0x38);" (assignment_expression "uVar14 = (undefined1)((ulonglong)dVar33 >> 0x38)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x38)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x38)" ( (binary_expression "(ulonglong)dVar33 >> 0x38" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n          *puVar12 = uVar14;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar6;\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar24;\n          puVar12[6] = uVar7;\n          puVar12[7] = SUB81(dVar33,0);\n        }\n        else {\n          *puVar12 = SUB81(dVar33,0);\n          puVar12[1] = uVar7;\n          puVar12[2] = uVar24;\n          puVar12[3] = uVar16;\n          puVar12[4] = uVar6;\n          puVar12[5] = uVar22;\n          puVar12[6] = uVar20;\n          puVar12[7] = uVar14;\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          *puVar12 = uVar14;\n          puVar12[1] = uVar20;\n          puVar12[2] = uVar22;\n          puVar12[3] = uVar6;\n          puVar12[4] = uVar16;\n          puVar12[5] = uVar24;\n          puVar12[6] = uVar7;\n          puVar12[7] = SUB81(dVar33,0);\n        }" { (expression_statement "*puVar12 = uVar14;" (assignment_expression "*puVar12 = uVar14" (pointer_expression "*puVar12" * identifier) = identifier) ;) (expression_statement "puVar12[1] = uVar20;" (assignment_expression "puVar12[1] = uVar20" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = uVar22;" (assignment_expression "puVar12[2] = uVar22" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = uVar6;" (assignment_expression "puVar12[3] = uVar6" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[4] = uVar16;" (assignment_expression "puVar12[4] = uVar16" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[5] = uVar24;" (assignment_expression "puVar12[5] = uVar24" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[6] = uVar7;" (assignment_expression "puVar12[6] = uVar7" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[7] = SUB81(dVar33,0);" (assignment_expression "puVar12[7] = SUB81(dVar33,0)" (subscript_expression "puVar12[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar33,0)" identifier (argument_list "(dVar33,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n          *puVar12 = SUB81(dVar33,0);\n          puVar12[1] = uVar7;\n          puVar12[2] = uVar24;\n          puVar12[3] = uVar16;\n          puVar12[4] = uVar6;\n          puVar12[5] = uVar22;\n          puVar12[6] = uVar20;\n          puVar12[7] = uVar14;\n        }" else (compound_statement "{\n          *puVar12 = SUB81(dVar33,0);\n          puVar12[1] = uVar7;\n          puVar12[2] = uVar24;\n          puVar12[3] = uVar16;\n          puVar12[4] = uVar6;\n          puVar12[5] = uVar22;\n          puVar12[6] = uVar20;\n          puVar12[7] = uVar14;\n        }" { (expression_statement "*puVar12 = SUB81(dVar33,0);" (assignment_expression "*puVar12 = SUB81(dVar33,0)" (pointer_expression "*puVar12" * identifier) = (call_expression "SUB81(dVar33,0)" identifier (argument_list "(dVar33,0)" ( identifier , number_literal )))) ;) (expression_statement "puVar12[1] = uVar7;" (assignment_expression "puVar12[1] = uVar7" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = uVar24;" (assignment_expression "puVar12[2] = uVar24" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = uVar16;" (assignment_expression "puVar12[3] = uVar16" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[4] = uVar6;" (assignment_expression "puVar12[4] = uVar6" (subscript_expression "puVar12[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[5] = uVar22;" (assignment_expression "puVar12[5] = uVar22" (subscript_expression "puVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[6] = uVar20;" (assignment_expression "puVar12[6] = uVar20" (subscript_expression "puVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[7] = uVar14;" (assignment_expression "puVar12[7] = uVar14" (subscript_expression "puVar12[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar33 = (double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;" (assignment_expression "dVar33 = (double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum" identifier = (binary_expression "(double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum" (binary_expression "(double)*(float *)(iVar26 + image->channel_map[1].offset * 4) *\n                 (quantum_info->state).inverse_scale" (cast_expression "(double)*(float *)(iVar26 + image->channel_map[1].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar26 + image->channel_map[1].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[1].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[1].offset * 4" identifier + (binary_expression "image->channel_map[1].offset * 4" (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) * (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 "uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);" (assignment_expression "uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 & 0xff000000ff)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar33 & 0xff000000ff" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar7 = (undefined1)((ulonglong)dVar33 >> 8);" (assignment_expression "uVar7 = (undefined1)((ulonglong)dVar33 >> 8)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 8)" ( (binary_expression "(ulonglong)dVar33 >> 8" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);" (assignment_expression "uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x10)" ( (binary_expression "(ulonglong)dVar33 >> 0x10" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);" (assignment_expression "uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x18)" ( (binary_expression "(ulonglong)dVar33 >> 0x18" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);" (assignment_expression "uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20)" identifier = (call_expression "(undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(((ulonglong)dVar33 & 0xff000000ff) >> 0x20)" ( (binary_expression "((ulonglong)dVar33 & 0xff000000ff) >> 0x20" (parenthesized_expression "((ulonglong)dVar33 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar33 & 0xff000000ff" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )) >> number_literal) )))) ;) (expression_statement "uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);" (assignment_expression "uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x28)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x28)" ( (binary_expression "(ulonglong)dVar33 >> 0x28" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);" (assignment_expression "uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x30)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x30)" ( (binary_expression "(ulonglong)dVar33 >> 0x30" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);" (assignment_expression "uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x38)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x38)" ( (binary_expression "(ulonglong)dVar33 >> 0x38" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n          puVar12[8] = uVar6;\n          puVar12[9] = uVar16;\n          puVar12[10] = uVar20;\n          puVar12[0xb] = uVar22;\n          puVar12[0xc] = uVar14;\n          puVar12[0xd] = uVar24;\n          puVar12[0xe] = uVar7;\n          puVar12[0xf] = uVar23;\n        }\n        else {\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar7;\n          puVar12[10] = uVar24;\n          puVar12[0xb] = uVar14;\n          puVar12[0xc] = uVar22;\n          puVar12[0xd] = uVar20;\n          puVar12[0xe] = uVar16;\n          puVar12[0xf] = uVar6;\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          puVar12[8] = uVar6;\n          puVar12[9] = uVar16;\n          puVar12[10] = uVar20;\n          puVar12[0xb] = uVar22;\n          puVar12[0xc] = uVar14;\n          puVar12[0xd] = uVar24;\n          puVar12[0xe] = uVar7;\n          puVar12[0xf] = uVar23;\n        }" { (expression_statement "puVar12[8] = uVar6;" (assignment_expression "puVar12[8] = uVar6" (subscript_expression "puVar12[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[9] = uVar16;" (assignment_expression "puVar12[9] = uVar16" (subscript_expression "puVar12[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[10] = uVar20;" (assignment_expression "puVar12[10] = uVar20" (subscript_expression "puVar12[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xb] = uVar22;" (assignment_expression "puVar12[0xb] = uVar22" (subscript_expression "puVar12[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xc] = uVar14;" (assignment_expression "puVar12[0xc] = uVar14" (subscript_expression "puVar12[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xd] = uVar24;" (assignment_expression "puVar12[0xd] = uVar24" (subscript_expression "puVar12[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xe] = uVar7;" (assignment_expression "puVar12[0xe] = uVar7" (subscript_expression "puVar12[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xf] = uVar23;" (assignment_expression "puVar12[0xf] = uVar23" (subscript_expression "puVar12[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar7;\n          puVar12[10] = uVar24;\n          puVar12[0xb] = uVar14;\n          puVar12[0xc] = uVar22;\n          puVar12[0xd] = uVar20;\n          puVar12[0xe] = uVar16;\n          puVar12[0xf] = uVar6;\n        }" else (compound_statement "{\n          puVar12[8] = uVar23;\n          puVar12[9] = uVar7;\n          puVar12[10] = uVar24;\n          puVar12[0xb] = uVar14;\n          puVar12[0xc] = uVar22;\n          puVar12[0xd] = uVar20;\n          puVar12[0xe] = uVar16;\n          puVar12[0xf] = uVar6;\n        }" { (expression_statement "puVar12[8] = uVar23;" (assignment_expression "puVar12[8] = uVar23" (subscript_expression "puVar12[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[9] = uVar7;" (assignment_expression "puVar12[9] = uVar7" (subscript_expression "puVar12[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[10] = uVar24;" (assignment_expression "puVar12[10] = uVar24" (subscript_expression "puVar12[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xb] = uVar14;" (assignment_expression "puVar12[0xb] = uVar14" (subscript_expression "puVar12[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xc] = uVar22;" (assignment_expression "puVar12[0xc] = uVar22" (subscript_expression "puVar12[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xd] = uVar20;" (assignment_expression "puVar12[0xd] = uVar20" (subscript_expression "puVar12[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xe] = uVar16;" (assignment_expression "puVar12[0xe] = uVar16" (subscript_expression "puVar12[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0xf] = uVar6;" (assignment_expression "puVar12[0xf] = uVar6" (subscript_expression "puVar12[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar33 = (double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum;" (assignment_expression "dVar33 = (double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum" identifier = (binary_expression "(double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                 (quantum_info->state).inverse_scale + quantum_info->minimum" (binary_expression "(double)*(float *)(iVar26 + image->channel_map[2].offset * 4) *\n                 (quantum_info->state).inverse_scale" (cast_expression "(double)*(float *)(iVar26 + image->channel_map[2].offset * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar26 + image->channel_map[2].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[2].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[2].offset * 4" identifier + (binary_expression "image->channel_map[2].offset * 4" (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) * (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 "uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);" (assignment_expression "uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 & 0xff000000ff)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar33 & 0xff000000ff" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar7 = (undefined1)((ulonglong)dVar33 >> 8);" (assignment_expression "uVar7 = (undefined1)((ulonglong)dVar33 >> 8)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 8)" ( (binary_expression "(ulonglong)dVar33 >> 8" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);" (assignment_expression "uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x10)" ( (binary_expression "(ulonglong)dVar33 >> 0x10" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);" (assignment_expression "uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x18)" ( (binary_expression "(ulonglong)dVar33 >> 0x18" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);" (assignment_expression "uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20)" identifier = (call_expression "(undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(((ulonglong)dVar33 & 0xff000000ff) >> 0x20)" ( (binary_expression "((ulonglong)dVar33 & 0xff000000ff) >> 0x20" (parenthesized_expression "((ulonglong)dVar33 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar33 & 0xff000000ff" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )) >> number_literal) )))) ;) (expression_statement "uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);" (assignment_expression "uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x28)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x28)" ( (binary_expression "(ulonglong)dVar33 >> 0x28" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);" (assignment_expression "uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x30)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x30)" ( (binary_expression "(ulonglong)dVar33 >> 0x30" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);" (assignment_expression "uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x38)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x38)" ( (binary_expression "(ulonglong)dVar33 >> 0x38" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n          puVar12[0x10] = uVar6;\n          puVar12[0x11] = uVar16;\n          puVar12[0x12] = uVar20;\n          puVar12[0x13] = uVar22;\n          puVar12[0x14] = uVar14;\n          puVar12[0x15] = uVar24;\n          puVar12[0x16] = uVar7;\n          puVar12[0x17] = uVar23;\n        }\n        else {\n          puVar12[0x10] = uVar23;\n          puVar12[0x11] = uVar7;\n          puVar12[0x12] = uVar24;\n          puVar12[0x13] = uVar14;\n          puVar12[0x14] = uVar22;\n          puVar12[0x15] = uVar20;\n          puVar12[0x16] = uVar16;\n          puVar12[0x17] = uVar6;\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          puVar12[0x10] = uVar6;\n          puVar12[0x11] = uVar16;\n          puVar12[0x12] = uVar20;\n          puVar12[0x13] = uVar22;\n          puVar12[0x14] = uVar14;\n          puVar12[0x15] = uVar24;\n          puVar12[0x16] = uVar7;\n          puVar12[0x17] = uVar23;\n        }" { (expression_statement "puVar12[0x10] = uVar6;" (assignment_expression "puVar12[0x10] = uVar6" (subscript_expression "puVar12[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x11] = uVar16;" (assignment_expression "puVar12[0x11] = uVar16" (subscript_expression "puVar12[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x12] = uVar20;" (assignment_expression "puVar12[0x12] = uVar20" (subscript_expression "puVar12[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x13] = uVar22;" (assignment_expression "puVar12[0x13] = uVar22" (subscript_expression "puVar12[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x14] = uVar14;" (assignment_expression "puVar12[0x14] = uVar14" (subscript_expression "puVar12[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x15] = uVar24;" (assignment_expression "puVar12[0x15] = uVar24" (subscript_expression "puVar12[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x16] = uVar7;" (assignment_expression "puVar12[0x16] = uVar7" (subscript_expression "puVar12[0x16]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x17] = uVar23;" (assignment_expression "puVar12[0x17] = uVar23" (subscript_expression "puVar12[0x17]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          puVar12[0x10] = uVar23;\n          puVar12[0x11] = uVar7;\n          puVar12[0x12] = uVar24;\n          puVar12[0x13] = uVar14;\n          puVar12[0x14] = uVar22;\n          puVar12[0x15] = uVar20;\n          puVar12[0x16] = uVar16;\n          puVar12[0x17] = uVar6;\n        }" else (compound_statement "{\n          puVar12[0x10] = uVar23;\n          puVar12[0x11] = uVar7;\n          puVar12[0x12] = uVar24;\n          puVar12[0x13] = uVar14;\n          puVar12[0x14] = uVar22;\n          puVar12[0x15] = uVar20;\n          puVar12[0x16] = uVar16;\n          puVar12[0x17] = uVar6;\n        }" { (expression_statement "puVar12[0x10] = uVar23;" (assignment_expression "puVar12[0x10] = uVar23" (subscript_expression "puVar12[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x11] = uVar7;" (assignment_expression "puVar12[0x11] = uVar7" (subscript_expression "puVar12[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x12] = uVar24;" (assignment_expression "puVar12[0x12] = uVar24" (subscript_expression "puVar12[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x13] = uVar14;" (assignment_expression "puVar12[0x13] = uVar14" (subscript_expression "puVar12[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x14] = uVar22;" (assignment_expression "puVar12[0x14] = uVar22" (subscript_expression "puVar12[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x15] = uVar20;" (assignment_expression "puVar12[0x15] = uVar20" (subscript_expression "puVar12[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x16] = uVar16;" (assignment_expression "puVar12[0x16] = uVar16" (subscript_expression "puVar12[0x16]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x17] = uVar6;" (assignment_expression "puVar12[0x17] = uVar6" (subscript_expression "puVar12[0x17]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (image->channel_map[4].traits == BlendPixelTrait) {\n          dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n        }\n        else {\n          dVar33 = 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          dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));\n        }" { (expression_statement "dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4));" (assignment_expression "dVar33 = (double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4))" identifier = (cast_expression "(double)(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4))" ( (binary_expression "fVar39 - *(float *)(iVar26 + image->channel_map[4].offset * 4)" identifier - (pointer_expression "*(float *)(iVar26 + image->channel_map[4].offset * 4)" * (cast_expression "(float *)(iVar26 + image->channel_map[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + image->channel_map[4].offset * 4)" ( (binary_expression "iVar26 + image->channel_map[4].offset * 4" identifier + (binary_expression "image->channel_map[4].offset * 4" (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) * number_literal)) ))))) )))) ;) }) (else_clause "else {\n          dVar33 = 0.0;\n        }" else (compound_statement "{\n          dVar33 = 0.0;\n        }" { (expression_statement "dVar33 = 0.0;" (assignment_expression "dVar33 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar33 = dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum;" (assignment_expression "dVar33 = dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum" identifier = (binary_expression "dVar33 * (quantum_info->state).inverse_scale + quantum_info->minimum" (binary_expression "dVar33 * (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 "uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff);" (assignment_expression "uVar23 = (undefined1)((ulonglong)dVar33 & 0xff000000ff)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 & 0xff000000ff)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar33 & 0xff000000ff" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar7 = (undefined1)((ulonglong)dVar33 >> 8);" (assignment_expression "uVar7 = (undefined1)((ulonglong)dVar33 >> 8)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 8)" ( (binary_expression "(ulonglong)dVar33 >> 8" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10);" (assignment_expression "uVar24 = (undefined1)((ulonglong)dVar33 >> 0x10)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x10)" ( (binary_expression "(ulonglong)dVar33 >> 0x10" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18);" (assignment_expression "uVar14 = (undefined1)((ulonglong)dVar33 >> 0x18)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x18)" ( (binary_expression "(ulonglong)dVar33 >> 0x18" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20);" (assignment_expression "uVar22 = (undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20)" identifier = (call_expression "(undefined1)(((ulonglong)dVar33 & 0xff000000ff) >> 0x20)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(((ulonglong)dVar33 & 0xff000000ff) >> 0x20)" ( (binary_expression "((ulonglong)dVar33 & 0xff000000ff) >> 0x20" (parenthesized_expression "((ulonglong)dVar33 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar33 & 0xff000000ff" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )) >> number_literal) )))) ;) (expression_statement "uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28);" (assignment_expression "uVar20 = (undefined1)((ulonglong)dVar33 >> 0x28)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x28)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x28)" ( (binary_expression "(ulonglong)dVar33 >> 0x28" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30);" (assignment_expression "uVar16 = (undefined1)((ulonglong)dVar33 >> 0x30)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x30)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x30)" ( (binary_expression "(ulonglong)dVar33 >> 0x30" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38);" (assignment_expression "uVar6 = (undefined1)((ulonglong)dVar33 >> 0x38)" identifier = (call_expression "(undefined1)((ulonglong)dVar33 >> 0x38)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((ulonglong)dVar33 >> 0x38)" ( (binary_expression "(ulonglong)dVar33 >> 0x38" (cast_expression "(ulonglong)dVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n          puVar12[0x18] = uVar6;\n          puVar12[0x19] = uVar16;\n          puVar12[0x1a] = uVar20;\n          puVar12[0x1b] = uVar22;\n          puVar12[0x1c] = uVar14;\n          puVar12[0x1d] = uVar24;\n          puVar12[0x1e] = uVar7;\n          puVar12[0x1f] = uVar23;\n        }\n        else {\n          puVar12[0x18] = uVar23;\n          puVar12[0x19] = uVar7;\n          puVar12[0x1a] = uVar24;\n          puVar12[0x1b] = uVar14;\n          puVar12[0x1c] = uVar22;\n          puVar12[0x1d] = uVar20;\n          puVar12[0x1e] = uVar16;\n          puVar12[0x1f] = uVar6;\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          puVar12[0x18] = uVar6;\n          puVar12[0x19] = uVar16;\n          puVar12[0x1a] = uVar20;\n          puVar12[0x1b] = uVar22;\n          puVar12[0x1c] = uVar14;\n          puVar12[0x1d] = uVar24;\n          puVar12[0x1e] = uVar7;\n          puVar12[0x1f] = uVar23;\n        }" { (expression_statement "puVar12[0x18] = uVar6;" (assignment_expression "puVar12[0x18] = uVar6" (subscript_expression "puVar12[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x19] = uVar16;" (assignment_expression "puVar12[0x19] = uVar16" (subscript_expression "puVar12[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x1a] = uVar20;" (assignment_expression "puVar12[0x1a] = uVar20" (subscript_expression "puVar12[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x1b] = uVar22;" (assignment_expression "puVar12[0x1b] = uVar22" (subscript_expression "puVar12[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x1c] = uVar14;" (assignment_expression "puVar12[0x1c] = uVar14" (subscript_expression "puVar12[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x1d] = uVar24;" (assignment_expression "puVar12[0x1d] = uVar24" (subscript_expression "puVar12[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x1e] = uVar7;" (assignment_expression "puVar12[0x1e] = uVar7" (subscript_expression "puVar12[0x1e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x1f] = uVar23;" (assignment_expression "puVar12[0x1f] = uVar23" (subscript_expression "puVar12[0x1f]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          puVar12[0x18] = uVar23;\n          puVar12[0x19] = uVar7;\n          puVar12[0x1a] = uVar24;\n          puVar12[0x1b] = uVar14;\n          puVar12[0x1c] = uVar22;\n          puVar12[0x1d] = uVar20;\n          puVar12[0x1e] = uVar16;\n          puVar12[0x1f] = uVar6;\n        }" else (compound_statement "{\n          puVar12[0x18] = uVar23;\n          puVar12[0x19] = uVar7;\n          puVar12[0x1a] = uVar24;\n          puVar12[0x1b] = uVar14;\n          puVar12[0x1c] = uVar22;\n          puVar12[0x1d] = uVar20;\n          puVar12[0x1e] = uVar16;\n          puVar12[0x1f] = uVar6;\n        }" { (expression_statement "puVar12[0x18] = uVar23;" (assignment_expression "puVar12[0x18] = uVar23" (subscript_expression "puVar12[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x19] = uVar7;" (assignment_expression "puVar12[0x19] = uVar7" (subscript_expression "puVar12[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x1a] = uVar24;" (assignment_expression "puVar12[0x1a] = uVar24" (subscript_expression "puVar12[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x1b] = uVar14;" (assignment_expression "puVar12[0x1b] = uVar14" (subscript_expression "puVar12[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x1c] = uVar22;" (assignment_expression "puVar12[0x1c] = uVar22" (subscript_expression "puVar12[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x1d] = uVar20;" (assignment_expression "puVar12[0x1d] = uVar20" (subscript_expression "puVar12[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x1e] = uVar16;" (assignment_expression "puVar12[0x1e] = uVar16" (subscript_expression "puVar12[0x1e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[0x1f] = uVar6;" (assignment_expression "puVar12[0x1f] = uVar6" (subscript_expression "puVar12[0x1f]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (expression_statement "number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20);" (assignment_expression "number_pixels =\n             CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20)" identifier = (call_expression "CONCAT44(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20)" identifier (argument_list "(iVar26 + image->number_channels * 4,puVar12 + quantum_info->pad + 0x20)" ( (binary_expression "iVar26 + image->number_channels * 4" identifier + (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal)) , (binary_expression "puVar12 + quantum_info->pad + 0x20" (binary_expression "puVar12 + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal) )))) ;) }) while (parenthesized_expression "(puVar29 != q)" ( (binary_expression "puVar29 != q" identifier != identifier) )) ;) (return_statement "return;" return ;) })) }))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (if_statement "if (uVar25 < 0x41) {\n    uVar9 = uVar25;\n  }" if (parenthesized_expression "(uVar25 < 0x41)" ( (binary_expression "uVar25 < 0x41" identifier < number_literal) )) (compound_statement "{\n    uVar9 = uVar25;\n  }" { (expression_statement "uVar9 = uVar25;" (assignment_expression "uVar9 = uVar25" identifier = identifier) ;) })) (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "uVar11 = 2 << (uVar9 & 0x1f);" (assignment_expression "uVar11 = 2 << (uVar9 & 0x1f)" identifier = (binary_expression "2 << (uVar9 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) (expression_statement "uVar10 = 1 >> (~uVar9 & 0x1f);" (assignment_expression "uVar10 = 1 >> (~uVar9 & 0x1f)" identifier = (binary_expression "1 >> (~uVar9 & 0x1f)" number_literal >> (parenthesized_expression "(~uVar9 & 0x1f)" ( (binary_expression "~uVar9 & 0x1f" (unary_expression "~uVar9" ~ identifier) & number_literal) )))) ;) (if_statement "if ((uVar9 & 0x20) != 0) {\n    uVar17 = 0;\n    uVar10 = uVar11;\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    uVar17 = 0;\n    uVar10 = uVar11;\n  }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = uVar11;" (assignment_expression "uVar10 = uVar11" identifier = identifier) ;) })) (expression_statement "local_b8 = uVar17 - 1;" (assignment_expression "local_b8 = uVar17 - 1" identifier = (binary_expression "uVar17 - 1" identifier - number_literal)) ;) (expression_statement "local_c0 = (uint)(local_b8 < uVar17) + (uVar10 - 1);" (assignment_expression "local_c0 = (uint)(local_b8 < uVar17) + (uVar10 - 1)" identifier = (binary_expression "(uint)(local_b8 < uVar17) + (uVar10 - 1)" (call_expression "(uint)(local_b8 < uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b8 < uVar17)" ( (binary_expression "local_b8 < uVar17" identifier < identifier) ))) + (parenthesized_expression "(uVar10 - 1)" ( (binary_expression "uVar10 - 1" identifier - number_literal) )))) ;) (labeled_statement "LAB_0016507c:\n  if ((int)q < 1) {\n    return;\n  }" statement_identifier : (if_statement "if ((int)q < 1) {\n    return;\n  }" if (parenthesized_expression "((int)q < 1)" ( (binary_expression "(int)q < 1" (cast_expression "(int)q" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" identifier = number_literal) ;) (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "puVar29 = (uchar *)0x0;" (assignment_expression "puVar29 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dVar47 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar47 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar45 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar39 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "fVar42 = *(float *)(number_pixels._0_4_ + pPVar8[2].offset * 4);" (assignment_expression "fVar42 = *(float *)(number_pixels._0_4_ + pPVar8[2].offset * 4)" identifier = (pointer_expression "*(float *)(number_pixels._0_4_ + pPVar8[2].offset * 4)" * (cast_expression "(float *)(number_pixels._0_4_ + pPVar8[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(number_pixels._0_4_ + pPVar8[2].offset * 4)" ( (binary_expression "number_pixels._0_4_ + pPVar8[2].offset * 4" (field_expression "number_pixels._0_4_" identifier . field_identifier) + (binary_expression "pPVar8[2].offset * 4" (field_expression "pPVar8[2].offset" (subscript_expression "pPVar8[2]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (expression_statement "dVar33 = dVar37;" (assignment_expression "dVar33 = dVar37" identifier = identifier) ;) (expression_statement "dVar34 = dVar47;" (assignment_expression "dVar34 = dVar47" identifier = identifier) ;) (expression_statement "dVar35 = dVar45;" (assignment_expression "dVar35 = dVar45" identifier = identifier) ;) (expression_statement "dVar36 = dVar37;" (assignment_expression "dVar36 = dVar37" identifier = identifier) ;) (if_statement "if (!NAN(fVar42)) goto LAB_001650f0;" if (parenthesized_expression "(!NAN(fVar42))" ( (unary_expression "!NAN(fVar42)" ! (call_expression "NAN(fVar42)" identifier (argument_list "(fVar42)" ( identifier )))) )) (goto_statement "goto LAB_001650f0;" goto statement_identifier ;)) (labeled_statement "LAB_00165520:\n  do {\n    uVar51 = 0;\nLAB_00165130:\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    iVar26 = (int)(number_pixels >> 0x20);\n    pbVar31 = (byte *)number_pixels;\n    sVar27 = (quantum_info->state).bits;\n    if (sVar27 == 0) {\n      sVar27 = 8;\n      (quantum_info->state).bits = 8;\n    }\n    if ((int)uVar25 < 1) {\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      if (!NAN(fVar42)) goto LAB_00165204;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001651e4;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001651e4:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655cc:\n        uVar51 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar42 <= (float)uVar44) goto LAB_001655cc;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar36) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if ((int)uVar25 < 1) {\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      if (!NAN(fVar42)) goto LAB_0016531c;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001652fc;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001652fc:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655c0:\n        uVar51 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar42 <= (float)uVar44) goto LAB_001655c0;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if ((int)uVar25 < 1) {\n      if (pPVar8[4].traits == BlendPixelTrait) goto LAB_0016554c;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_00165418;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_00165418:\n      pPVar8 = image->channel_map;\n      uVar25 = quantum_info->depth;\n      if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_0016554c:\n        fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n        if (fVar42 <= (float)uVar44) goto LAB_00165430;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar51 = 0;\n      }\n      if (sVar27 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if (0 < (int)uVar25) {\n      do {\n        uVar17 = (quantum_info->state).bits;\n        uVar10 = uVar17;\n        if (uVar25 <= uVar17) {\n          uVar10 = uVar25;\n        }\n        uVar11 = uVar25 - uVar10;\n        uVar25 = uVar11;\n        if ((int)uVar11 < 0) {\n          uVar25 = 0;\n        }\n        if (uVar17 == 8) {\n          *pbVar31 = 0;\n        }\n        uVar28 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n        if ((uVar25 & 0x20) != 0) {\n          uVar28 = uVar9 >> (uVar25 & 0x1f);\n        }\n        uVar17 = uVar17 - uVar10;\n        (quantum_info->state).bits = uVar17;\n        bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f));\n        if ((uVar17 & 0x20) != 0) {\n          bVar15 = 0;\n        }\n        *pbVar31 = bVar15 | *pbVar31;\n        if (uVar17 == 0) {\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n        }\n      } while (0 < (int)uVar11);\n    }\n    puVar29 = puVar29 + 1;\n    iVar26 = iVar26 + image->number_channels * 4;\n    number_pixels = CONCAT44(iVar26,pbVar31 + quantum_info->pad);\n    if (puVar29 == q) {\n      return;\n    }\n    pPVar8 = image->channel_map;\n    fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n    uVar25 = quantum_info->depth;\n  } while (NAN(fVar42));" statement_identifier : (do_statement "do {\n    uVar51 = 0;\nLAB_00165130:\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    iVar26 = (int)(number_pixels >> 0x20);\n    pbVar31 = (byte *)number_pixels;\n    sVar27 = (quantum_info->state).bits;\n    if (sVar27 == 0) {\n      sVar27 = 8;\n      (quantum_info->state).bits = 8;\n    }\n    if ((int)uVar25 < 1) {\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      if (!NAN(fVar42)) goto LAB_00165204;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001651e4;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001651e4:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655cc:\n        uVar51 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar42 <= (float)uVar44) goto LAB_001655cc;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar36) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if ((int)uVar25 < 1) {\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      if (!NAN(fVar42)) goto LAB_0016531c;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001652fc;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001652fc:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655c0:\n        uVar51 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar42 <= (float)uVar44) goto LAB_001655c0;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if ((int)uVar25 < 1) {\n      if (pPVar8[4].traits == BlendPixelTrait) goto LAB_0016554c;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_00165418;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_00165418:\n      pPVar8 = image->channel_map;\n      uVar25 = quantum_info->depth;\n      if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_0016554c:\n        fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n        if (fVar42 <= (float)uVar44) goto LAB_00165430;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar51 = 0;\n      }\n      if (sVar27 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if (0 < (int)uVar25) {\n      do {\n        uVar17 = (quantum_info->state).bits;\n        uVar10 = uVar17;\n        if (uVar25 <= uVar17) {\n          uVar10 = uVar25;\n        }\n        uVar11 = uVar25 - uVar10;\n        uVar25 = uVar11;\n        if ((int)uVar11 < 0) {\n          uVar25 = 0;\n        }\n        if (uVar17 == 8) {\n          *pbVar31 = 0;\n        }\n        uVar28 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n        if ((uVar25 & 0x20) != 0) {\n          uVar28 = uVar9 >> (uVar25 & 0x1f);\n        }\n        uVar17 = uVar17 - uVar10;\n        (quantum_info->state).bits = uVar17;\n        bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f));\n        if ((uVar17 & 0x20) != 0) {\n          bVar15 = 0;\n        }\n        *pbVar31 = bVar15 | *pbVar31;\n        if (uVar17 == 0) {\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n        }\n      } while (0 < (int)uVar11);\n    }\n    puVar29 = puVar29 + 1;\n    iVar26 = iVar26 + image->number_channels * 4;\n    number_pixels = CONCAT44(iVar26,pbVar31 + quantum_info->pad);\n    if (puVar29 == q) {\n      return;\n    }\n    pPVar8 = image->channel_map;\n    fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n    uVar25 = quantum_info->depth;\n  } while (NAN(fVar42));" do (compound_statement "{\n    uVar51 = 0;\nLAB_00165130:\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    iVar26 = (int)(number_pixels >> 0x20);\n    pbVar31 = (byte *)number_pixels;\n    sVar27 = (quantum_info->state).bits;\n    if (sVar27 == 0) {\n      sVar27 = 8;\n      (quantum_info->state).bits = 8;\n    }\n    if ((int)uVar25 < 1) {\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      if (!NAN(fVar42)) goto LAB_00165204;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001651e4;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001651e4:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655cc:\n        uVar51 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar42 <= (float)uVar44) goto LAB_001655cc;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar36) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if ((int)uVar25 < 1) {\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      if (!NAN(fVar42)) goto LAB_0016531c;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001652fc;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001652fc:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655c0:\n        uVar51 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar42 <= (float)uVar44) goto LAB_001655c0;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if ((int)uVar25 < 1) {\n      if (pPVar8[4].traits == BlendPixelTrait) goto LAB_0016554c;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_00165418;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_00165418:\n      pPVar8 = image->channel_map;\n      uVar25 = quantum_info->depth;\n      if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_0016554c:\n        fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n        if (fVar42 <= (float)uVar44) goto LAB_00165430;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar51 = 0;\n      }\n      if (sVar27 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);\n    if (0 < (int)uVar25) {\n      do {\n        uVar17 = (quantum_info->state).bits;\n        uVar10 = uVar17;\n        if (uVar25 <= uVar17) {\n          uVar10 = uVar25;\n        }\n        uVar11 = uVar25 - uVar10;\n        uVar25 = uVar11;\n        if ((int)uVar11 < 0) {\n          uVar25 = 0;\n        }\n        if (uVar17 == 8) {\n          *pbVar31 = 0;\n        }\n        uVar28 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n        if ((uVar25 & 0x20) != 0) {\n          uVar28 = uVar9 >> (uVar25 & 0x1f);\n        }\n        uVar17 = uVar17 - uVar10;\n        (quantum_info->state).bits = uVar17;\n        bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f));\n        if ((uVar17 & 0x20) != 0) {\n          bVar15 = 0;\n        }\n        *pbVar31 = bVar15 | *pbVar31;\n        if (uVar17 == 0) {\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n        }\n      } while (0 < (int)uVar11);\n    }\n    puVar29 = puVar29 + 1;\n    iVar26 = iVar26 + image->number_channels * 4;\n    number_pixels = CONCAT44(iVar26,pbVar31 + quantum_info->pad);\n    if (puVar29 == q) {\n      return;\n    }\n    pPVar8 = image->channel_map;\n    fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);\n    uVar25 = quantum_info->depth;\n  }" { (expression_statement "uVar51 = 0;" (assignment_expression "uVar51 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00165130:\n    uVar9 = (uint)((ulonglong)uVar51 >> 0x20);" statement_identifier : (expression_statement "uVar9 = (uint)((ulonglong)uVar51 >> 0x20);" (assignment_expression "uVar9 = (uint)((ulonglong)uVar51 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar51 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "iVar26 = (int)(number_pixels >> 0x20);" (assignment_expression "iVar26 = (int)(number_pixels >> 0x20)" identifier = (cast_expression "(int)(number_pixels >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(number_pixels >> 0x20)" ( (binary_expression "number_pixels >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "pbVar31 = (byte *)number_pixels;" (assignment_expression "pbVar31 = (byte *)number_pixels" identifier = (cast_expression "(byte *)number_pixels" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "sVar27 = (quantum_info->state).bits;" (assignment_expression "sVar27 = (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 (sVar27 == 0) {\n      sVar27 = 8;\n      (quantum_info->state).bits = 8;\n    }" if (parenthesized_expression "(sVar27 == 0)" ( (binary_expression "sVar27 == 0" identifier == number_literal) )) (compound_statement "{\n      sVar27 = 8;\n      (quantum_info->state).bits = 8;\n    }" { (expression_statement "sVar27 = 8;" (assignment_expression "sVar27 = 8" 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) ;) })) (if_statement "if ((int)uVar25 < 1) {\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      if (!NAN(fVar42)) goto LAB_00165204;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001651e4;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001651e4:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655cc:\n        uVar51 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar42 <= (float)uVar44) goto LAB_001655cc;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar36) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }" if (parenthesized_expression "((int)uVar25 < 1)" ( (binary_expression "(int)uVar25 < 1" (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      if (!NAN(fVar42)) goto LAB_00165204;\n      uVar51 = 0;\n    }" { (expression_statement "fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + pPVar8[1].offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8[1].offset * 4)" ( (binary_expression "iVar26 + pPVar8[1].offset * 4" identifier + (binary_expression "pPVar8[1].offset * 4" (field_expression "pPVar8[1].offset" (subscript_expression "pPVar8[1]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (if_statement "if (!NAN(fVar42)) goto LAB_00165204;" if (parenthesized_expression "(!NAN(fVar42))" ( (unary_expression "!NAN(fVar42)" ! (call_expression "NAN(fVar42)" identifier (argument_list "(fVar42)" ( identifier )))) )) (goto_statement "goto LAB_00165204;" goto statement_identifier ;)) (expression_statement "uVar51 = 0;" (assignment_expression "uVar51 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001651e4;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001651e4:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655cc:\n        uVar51 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar42 <= (float)uVar44) goto LAB_001655cc;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar36) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001651e4;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001651e4:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655cc:\n        uVar51 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar42 <= (float)uVar44) goto LAB_001655cc;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar36) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001651e4;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);" do (compound_statement "{\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001651e4;\n        }\n        sVar27 = (quantum_info->state).bits;\n      }" { (while_statement "while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001651e4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001651e4;\n        }" { (expression_statement "uVar10 = sVar27;" (assignment_expression "uVar10 = sVar27" identifier = identifier) ;) (if_statement "if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }" if (parenthesized_expression "(uVar25 <= sVar27)" ( (binary_expression "uVar25 <= sVar27" identifier <= identifier) )) (compound_statement "{\n            uVar10 = uVar25;\n          }" { (expression_statement "uVar10 = uVar25;" (assignment_expression "uVar10 = uVar25" identifier = identifier) ;) })) (expression_statement "uVar17 = uVar25 - uVar10;" (assignment_expression "uVar17 = uVar25 - uVar10" identifier = (binary_expression "uVar25 - uVar10" identifier - identifier)) ;) (expression_statement "uVar25 = uVar17;" (assignment_expression "uVar25 = uVar17" identifier = identifier) ;) (if_statement "if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }" if (parenthesized_expression "((int)uVar17 < 0)" ( (binary_expression "(int)uVar17 < 0" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar25 = 0;\n          }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) })) (if_statement "if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }" if (parenthesized_expression "(sVar27 == 8)" ( (binary_expression "sVar27 == 8" identifier == number_literal) )) (compound_statement "{\n            *pbVar31 = 0;\n          }" { (expression_statement "*pbVar31 = 0;" (assignment_expression "*pbVar31 = 0" (pointer_expression "*pbVar31" * identifier) = number_literal) ;) })) (expression_statement "uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);" (assignment_expression "uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f)" identifier = (binary_expression "(uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f)" (binary_expression "(uVar9 << 1) << (~uVar25 & 0x1f)" (parenthesized_expression "(uVar9 << 1)" ( (binary_expression "uVar9 << 1" identifier << number_literal) )) << (parenthesized_expression "(~uVar25 & 0x1f)" ( (binary_expression "~uVar25 & 0x1f" (unary_expression "~uVar25" ~ identifier) & number_literal) ))) | (binary_expression "(uint)uVar51 >> (uVar25 & 0x1f)" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar25 & 0x1f)" ( (binary_expression "uVar25 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }" if (parenthesized_expression "((uVar25 & 0x20) != 0)" ( (binary_expression "(uVar25 & 0x20) != 0" (parenthesized_expression "(uVar25 & 0x20)" ( (binary_expression "uVar25 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }" { (expression_statement "uVar11 = uVar9 >> (uVar25 & 0x1f);" (assignment_expression "uVar11 = uVar9 >> (uVar25 & 0x1f)" identifier = (binary_expression "uVar9 >> (uVar25 & 0x1f)" identifier >> (parenthesized_expression "(uVar25 & 0x1f)" ( (binary_expression "uVar25 & 0x1f" identifier & number_literal) )))) ;) })) (expression_statement "uVar28 = sVar27 - uVar10;" (assignment_expression "uVar28 = sVar27 - uVar10" identifier = (binary_expression "sVar27 - uVar10" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar28;" (assignment_expression "(quantum_info->state).bits = uVar28" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));" (assignment_expression "bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" ( (binary_expression "(~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar10 & 0x1f)) & uVar11)" ( (binary_expression "~(-1 << (uVar10 & 0x1f)) & uVar11" (unary_expression "~(-1 << (uVar10 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar10 & 0x1f))" ( (binary_expression "-1 << (uVar10 & 0x1f)" number_literal << (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar28 & 0x1f)" ( (binary_expression "uVar28 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }" if (parenthesized_expression "((uVar28 & 0x20) != 0)" ( (binary_expression "(uVar28 & 0x20) != 0" (parenthesized_expression "(uVar28 & 0x20)" ( (binary_expression "uVar28 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar15 = 0;\n          }" { (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) })) (expression_statement "*pbVar31 = bVar15 | *pbVar31;" (assignment_expression "*pbVar31 = bVar15 | *pbVar31" (pointer_expression "*pbVar31" * identifier) = (binary_expression "bVar15 | *pbVar31" identifier | (pointer_expression "*pbVar31" * identifier))) ;) (if_statement "if (uVar28 != 0) break;" if (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 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 "sVar27 = 8;" (assignment_expression "sVar27 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar17 < 1) goto LAB_001651e4;" if (parenthesized_expression "((int)uVar17 < 1)" ( (binary_expression "(int)uVar17 < 1" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_001651e4;" goto statement_identifier ;)) })) (expression_statement "sVar27 = (quantum_info->state).bits;" (assignment_expression "sVar27 = (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)uVar17)" ( (binary_expression "0 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_001651e4:\n      pPVar8 = image->channel_map;" statement_identifier : (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;)) (expression_statement "fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + pPVar8[1].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + pPVar8[1].offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8[1].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8[1].offset * 4)" ( (binary_expression "iVar26 + pPVar8[1].offset * 4" identifier + (binary_expression "pPVar8[1].offset * 4" (field_expression "pPVar8[1].offset" (subscript_expression "pPVar8[1]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (expression_statement "uVar25 = quantum_info->depth;" (assignment_expression "uVar25 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (NAN(fVar42)) {\nLAB_001655cc:\n        uVar51 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar42 <= (float)uVar44) goto LAB_001655cc;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar36) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }" if (parenthesized_expression "(NAN(fVar42))" ( (call_expression "NAN(fVar42)" identifier (argument_list "(fVar42)" ( identifier ))) )) (compound_statement "{\nLAB_001655cc:\n        uVar51 = 0;\n      }" { (labeled_statement "LAB_001655cc:\n        uVar51 = 0;" statement_identifier : (expression_statement "uVar51 = 0;" (assignment_expression "uVar51 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_00165204:\n        if (fVar42 <= (float)uVar44) goto LAB_001655cc;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar36) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }" else (compound_statement "{\nLAB_00165204:\n        if (fVar42 <= (float)uVar44) goto LAB_001655cc;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar36) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }" { (labeled_statement "LAB_00165204:\n        if (fVar42 <= (float)uVar44) goto LAB_001655cc;" statement_identifier : (if_statement "if (fVar42 <= (float)uVar44) goto LAB_001655cc;" if (parenthesized_expression "(fVar42 <= (float)uVar44)" ( (binary_expression "fVar42 <= (float)uVar44" identifier <= (cast_expression "(float)uVar44" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_001655cc;" goto statement_identifier ;))) (expression_statement "dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);" (assignment_expression "dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8)" identifier = (cast_expression "(double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR___floatundidf_003a8960)" ( (pointer_expression "*(code *)PTR___floatundidf_003a8960" * (cast_expression "(code *)PTR___floatundidf_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_c0,local_b8)" ( identifier , identifier ))))) ;) (expression_statement "dVar46 = (dVar46 * (double)fVar42) / dVar47;" (assignment_expression "dVar46 = (dVar46 * (double)fVar42) / dVar47" identifier = (binary_expression "(dVar46 * (double)fVar42) / dVar47" (parenthesized_expression "(dVar46 * (double)fVar42)" ( (binary_expression "dVar46 * (double)fVar42" identifier * (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) (if_statement "if (dVar46 < dVar36) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }" if (parenthesized_expression "(dVar46 < dVar36)" ( (binary_expression "dVar46 < dVar36" identifier < identifier) )) (compound_statement "{\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }" { (expression_statement "uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);" (assignment_expression "uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45)" identifier = (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45)" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar46 + dVar45)" ( (binary_expression "dVar46 + dVar45" identifier + identifier) )))) ;) }) (else_clause "else {\n          uVar51 = 0xffffffffffffffff;\n        }" else (compound_statement "{\n          uVar51 = 0xffffffffffffffff;\n        }" { (expression_statement "uVar51 = 0xffffffffffffffff;" (assignment_expression "uVar51 = 0xffffffffffffffff" identifier = number_literal) ;) }))) }))) (if_statement "if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }" if (parenthesized_expression "(sVar27 == 0)" ( (binary_expression "sVar27 == 0" identifier == number_literal) )) (compound_statement "{\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }" { (expression_statement "sVar27 = 8;" (assignment_expression "sVar27 = 8" 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 "uVar9 = (uint)((ulonglong)uVar51 >> 0x20);" (assignment_expression "uVar9 = (uint)((ulonglong)uVar51 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar51 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((int)uVar25 < 1) {\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      if (!NAN(fVar42)) goto LAB_0016531c;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001652fc;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001652fc:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655c0:\n        uVar51 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar42 <= (float)uVar44) goto LAB_001655c0;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }" if (parenthesized_expression "((int)uVar25 < 1)" ( (binary_expression "(int)uVar25 < 1" (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      if (!NAN(fVar42)) goto LAB_0016531c;\n      uVar51 = 0;\n    }" { (expression_statement "fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + pPVar8->offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + pPVar8->offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8->offset * 4)" ( (binary_expression "iVar26 + pPVar8->offset * 4" identifier + (binary_expression "pPVar8->offset * 4" (field_expression "pPVar8->offset" identifier -> field_identifier) * number_literal)) ))))) ;) (if_statement "if (!NAN(fVar42)) goto LAB_0016531c;" if (parenthesized_expression "(!NAN(fVar42))" ( (unary_expression "!NAN(fVar42)" ! (call_expression "NAN(fVar42)" identifier (argument_list "(fVar42)" ( identifier )))) )) (goto_statement "goto LAB_0016531c;" goto statement_identifier ;)) (expression_statement "uVar51 = 0;" (assignment_expression "uVar51 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001652fc;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001652fc:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655c0:\n        uVar51 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar42 <= (float)uVar44) goto LAB_001655c0;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001652fc;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_001652fc:\n      pPVar8 = image->channel_map;\n      fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);\n      uVar25 = quantum_info->depth;\n      if (NAN(fVar42)) {\nLAB_001655c0:\n        uVar51 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar42 <= (float)uVar44) goto LAB_001655c0;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001652fc;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);" do (compound_statement "{\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001652fc;\n        }\n        sVar27 = (quantum_info->state).bits;\n      }" { (while_statement "while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001652fc;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_001652fc;\n        }" { (expression_statement "uVar10 = sVar27;" (assignment_expression "uVar10 = sVar27" identifier = identifier) ;) (if_statement "if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }" if (parenthesized_expression "(uVar25 <= sVar27)" ( (binary_expression "uVar25 <= sVar27" identifier <= identifier) )) (compound_statement "{\n            uVar10 = uVar25;\n          }" { (expression_statement "uVar10 = uVar25;" (assignment_expression "uVar10 = uVar25" identifier = identifier) ;) })) (expression_statement "uVar17 = uVar25 - uVar10;" (assignment_expression "uVar17 = uVar25 - uVar10" identifier = (binary_expression "uVar25 - uVar10" identifier - identifier)) ;) (expression_statement "uVar25 = uVar17;" (assignment_expression "uVar25 = uVar17" identifier = identifier) ;) (if_statement "if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }" if (parenthesized_expression "((int)uVar17 < 0)" ( (binary_expression "(int)uVar17 < 0" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar25 = 0;\n          }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) })) (if_statement "if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }" if (parenthesized_expression "(sVar27 == 8)" ( (binary_expression "sVar27 == 8" identifier == number_literal) )) (compound_statement "{\n            *pbVar31 = 0;\n          }" { (expression_statement "*pbVar31 = 0;" (assignment_expression "*pbVar31 = 0" (pointer_expression "*pbVar31" * identifier) = number_literal) ;) })) (expression_statement "uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);" (assignment_expression "uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f)" identifier = (binary_expression "(uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f)" (binary_expression "(uVar9 << 1) << (~uVar25 & 0x1f)" (parenthesized_expression "(uVar9 << 1)" ( (binary_expression "uVar9 << 1" identifier << number_literal) )) << (parenthesized_expression "(~uVar25 & 0x1f)" ( (binary_expression "~uVar25 & 0x1f" (unary_expression "~uVar25" ~ identifier) & number_literal) ))) | (binary_expression "(uint)uVar51 >> (uVar25 & 0x1f)" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar25 & 0x1f)" ( (binary_expression "uVar25 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }" if (parenthesized_expression "((uVar25 & 0x20) != 0)" ( (binary_expression "(uVar25 & 0x20) != 0" (parenthesized_expression "(uVar25 & 0x20)" ( (binary_expression "uVar25 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }" { (expression_statement "uVar11 = uVar9 >> (uVar25 & 0x1f);" (assignment_expression "uVar11 = uVar9 >> (uVar25 & 0x1f)" identifier = (binary_expression "uVar9 >> (uVar25 & 0x1f)" identifier >> (parenthesized_expression "(uVar25 & 0x1f)" ( (binary_expression "uVar25 & 0x1f" identifier & number_literal) )))) ;) })) (expression_statement "uVar28 = sVar27 - uVar10;" (assignment_expression "uVar28 = sVar27 - uVar10" identifier = (binary_expression "sVar27 - uVar10" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar28;" (assignment_expression "(quantum_info->state).bits = uVar28" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));" (assignment_expression "bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" ( (binary_expression "(~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar10 & 0x1f)) & uVar11)" ( (binary_expression "~(-1 << (uVar10 & 0x1f)) & uVar11" (unary_expression "~(-1 << (uVar10 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar10 & 0x1f))" ( (binary_expression "-1 << (uVar10 & 0x1f)" number_literal << (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar28 & 0x1f)" ( (binary_expression "uVar28 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }" if (parenthesized_expression "((uVar28 & 0x20) != 0)" ( (binary_expression "(uVar28 & 0x20) != 0" (parenthesized_expression "(uVar28 & 0x20)" ( (binary_expression "uVar28 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar15 = 0;\n          }" { (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) })) (expression_statement "*pbVar31 = bVar15 | *pbVar31;" (assignment_expression "*pbVar31 = bVar15 | *pbVar31" (pointer_expression "*pbVar31" * identifier) = (binary_expression "bVar15 | *pbVar31" identifier | (pointer_expression "*pbVar31" * identifier))) ;) (if_statement "if (uVar28 != 0) break;" if (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 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 "sVar27 = 8;" (assignment_expression "sVar27 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar17 < 1) goto LAB_001652fc;" if (parenthesized_expression "((int)uVar17 < 1)" ( (binary_expression "(int)uVar17 < 1" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_001652fc;" goto statement_identifier ;)) })) (expression_statement "sVar27 = (quantum_info->state).bits;" (assignment_expression "sVar27 = (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)uVar17)" ( (binary_expression "0 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_001652fc:\n      pPVar8 = image->channel_map;" statement_identifier : (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;)) (expression_statement "fVar42 = *(float *)(iVar26 + pPVar8->offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + pPVar8->offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + pPVar8->offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8->offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8->offset * 4)" ( (binary_expression "iVar26 + pPVar8->offset * 4" identifier + (binary_expression "pPVar8->offset * 4" (field_expression "pPVar8->offset" identifier -> field_identifier) * number_literal)) ))))) ;) (expression_statement "uVar25 = quantum_info->depth;" (assignment_expression "uVar25 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (NAN(fVar42)) {\nLAB_001655c0:\n        uVar51 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar42 <= (float)uVar44) goto LAB_001655c0;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }" if (parenthesized_expression "(NAN(fVar42))" ( (call_expression "NAN(fVar42)" identifier (argument_list "(fVar42)" ( identifier ))) )) (compound_statement "{\nLAB_001655c0:\n        uVar51 = 0;\n      }" { (labeled_statement "LAB_001655c0:\n        uVar51 = 0;" statement_identifier : (expression_statement "uVar51 = 0;" (assignment_expression "uVar51 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_0016531c:\n        if (fVar42 <= (float)uVar44) goto LAB_001655c0;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }" else (compound_statement "{\nLAB_0016531c:\n        if (fVar42 <= (float)uVar44) goto LAB_001655c0;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }" { (labeled_statement "LAB_0016531c:\n        if (fVar42 <= (float)uVar44) goto LAB_001655c0;" statement_identifier : (if_statement "if (fVar42 <= (float)uVar44) goto LAB_001655c0;" if (parenthesized_expression "(fVar42 <= (float)uVar44)" ( (binary_expression "fVar42 <= (float)uVar44" identifier <= (cast_expression "(float)uVar44" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_001655c0;" goto statement_identifier ;))) (expression_statement "dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);" (assignment_expression "dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8)" identifier = (cast_expression "(double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR___floatundidf_003a8960)" ( (pointer_expression "*(code *)PTR___floatundidf_003a8960" * (cast_expression "(code *)PTR___floatundidf_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_c0,local_b8)" ( identifier , identifier ))))) ;) (expression_statement "dVar46 = (dVar46 * (double)fVar42) / dVar47;" (assignment_expression "dVar46 = (dVar46 * (double)fVar42) / dVar47" identifier = (binary_expression "(dVar46 * (double)fVar42) / dVar47" (parenthesized_expression "(dVar46 * (double)fVar42)" ( (binary_expression "dVar46 * (double)fVar42" identifier * (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) (if_statement "if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }" if (parenthesized_expression "(dVar46 < dVar37)" ( (binary_expression "dVar46 < dVar37" identifier < identifier) )) (compound_statement "{\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }" { (expression_statement "uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);" (assignment_expression "uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45)" identifier = (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45)" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar46 + dVar45)" ( (binary_expression "dVar46 + dVar45" identifier + identifier) )))) ;) }) (else_clause "else {\n          uVar51 = 0xffffffffffffffff;\n        }" else (compound_statement "{\n          uVar51 = 0xffffffffffffffff;\n        }" { (expression_statement "uVar51 = 0xffffffffffffffff;" (assignment_expression "uVar51 = 0xffffffffffffffff" identifier = number_literal) ;) }))) }))) (if_statement "if (sVar27 == 0) {\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }" if (parenthesized_expression "(sVar27 == 0)" ( (binary_expression "sVar27 == 0" identifier == number_literal) )) (compound_statement "{\n        sVar27 = 8;\n        (quantum_info->state).bits = 8;\n      }" { (expression_statement "sVar27 = 8;" (assignment_expression "sVar27 = 8" 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 "uVar9 = (uint)((ulonglong)uVar51 >> 0x20);" (assignment_expression "uVar9 = (uint)((ulonglong)uVar51 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar51 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((int)uVar25 < 1) {\n      if (pPVar8[4].traits == BlendPixelTrait) goto LAB_0016554c;\n      uVar51 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_00165418;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_00165418:\n      pPVar8 = image->channel_map;\n      uVar25 = quantum_info->depth;\n      if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_0016554c:\n        fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n        if (fVar42 <= (float)uVar44) goto LAB_00165430;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar51 = 0;\n      }\n      if (sVar27 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }" if (parenthesized_expression "((int)uVar25 < 1)" ( (binary_expression "(int)uVar25 < 1" (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if (pPVar8[4].traits == BlendPixelTrait) goto LAB_0016554c;\n      uVar51 = 0;\n    }" { (if_statement "if (pPVar8[4].traits == BlendPixelTrait) goto LAB_0016554c;" if (parenthesized_expression "(pPVar8[4].traits == BlendPixelTrait)" ( (binary_expression "pPVar8[4].traits == BlendPixelTrait" (field_expression "pPVar8[4].traits" (subscript_expression "pPVar8[4]" identifier [ number_literal ]) . field_identifier) == identifier) )) (goto_statement "goto LAB_0016554c;" goto statement_identifier ;)) (expression_statement "uVar51 = 0;" (assignment_expression "uVar51 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_00165418;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_00165418:\n      pPVar8 = image->channel_map;\n      uVar25 = quantum_info->depth;\n      if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_0016554c:\n        fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n        if (fVar42 <= (float)uVar44) goto LAB_00165430;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar51 = 0;\n      }\n      if (sVar27 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_00165418;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);\nLAB_00165418:\n      pPVar8 = image->channel_map;\n      uVar25 = quantum_info->depth;\n      if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_0016554c:\n        fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n        if (fVar42 <= (float)uVar44) goto LAB_00165430;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar51 = 0;\n      }\n      if (sVar27 == 0) {\n        (quantum_info->state).bits = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_00165418;\n        }\n        sVar27 = (quantum_info->state).bits;\n      } while (0 < (int)uVar17);" do (compound_statement "{\n        while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_00165418;\n        }\n        sVar27 = (quantum_info->state).bits;\n      }" { (while_statement "while( true ) {\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_00165418;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar10 = sVar27;\n          if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }\n          uVar17 = uVar25 - uVar10;\n          uVar25 = uVar17;\n          if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }\n          if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }\n          uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n          if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }\n          uVar28 = sVar27 - uVar10;\n          (quantum_info->state).bits = uVar28;\n          bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));\n          if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }\n          *pbVar31 = bVar15 | *pbVar31;\n          if (uVar28 != 0) break;\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n          sVar27 = 8;\n          if ((int)uVar17 < 1) goto LAB_00165418;\n        }" { (expression_statement "uVar10 = sVar27;" (assignment_expression "uVar10 = sVar27" identifier = identifier) ;) (if_statement "if (uVar25 <= sVar27) {\n            uVar10 = uVar25;\n          }" if (parenthesized_expression "(uVar25 <= sVar27)" ( (binary_expression "uVar25 <= sVar27" identifier <= identifier) )) (compound_statement "{\n            uVar10 = uVar25;\n          }" { (expression_statement "uVar10 = uVar25;" (assignment_expression "uVar10 = uVar25" identifier = identifier) ;) })) (expression_statement "uVar17 = uVar25 - uVar10;" (assignment_expression "uVar17 = uVar25 - uVar10" identifier = (binary_expression "uVar25 - uVar10" identifier - identifier)) ;) (expression_statement "uVar25 = uVar17;" (assignment_expression "uVar25 = uVar17" identifier = identifier) ;) (if_statement "if ((int)uVar17 < 0) {\n            uVar25 = 0;\n          }" if (parenthesized_expression "((int)uVar17 < 0)" ( (binary_expression "(int)uVar17 < 0" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar25 = 0;\n          }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) })) (if_statement "if (sVar27 == 8) {\n            *pbVar31 = 0;\n          }" if (parenthesized_expression "(sVar27 == 8)" ( (binary_expression "sVar27 == 8" identifier == number_literal) )) (compound_statement "{\n            *pbVar31 = 0;\n          }" { (expression_statement "*pbVar31 = 0;" (assignment_expression "*pbVar31 = 0" (pointer_expression "*pbVar31" * identifier) = number_literal) ;) })) (expression_statement "uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);" (assignment_expression "uVar11 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f)" identifier = (binary_expression "(uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f)" (binary_expression "(uVar9 << 1) << (~uVar25 & 0x1f)" (parenthesized_expression "(uVar9 << 1)" ( (binary_expression "uVar9 << 1" identifier << number_literal) )) << (parenthesized_expression "(~uVar25 & 0x1f)" ( (binary_expression "~uVar25 & 0x1f" (unary_expression "~uVar25" ~ identifier) & number_literal) ))) | (binary_expression "(uint)uVar51 >> (uVar25 & 0x1f)" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar25 & 0x1f)" ( (binary_expression "uVar25 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if ((uVar25 & 0x20) != 0) {\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }" if (parenthesized_expression "((uVar25 & 0x20) != 0)" ( (binary_expression "(uVar25 & 0x20) != 0" (parenthesized_expression "(uVar25 & 0x20)" ( (binary_expression "uVar25 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar11 = uVar9 >> (uVar25 & 0x1f);\n          }" { (expression_statement "uVar11 = uVar9 >> (uVar25 & 0x1f);" (assignment_expression "uVar11 = uVar9 >> (uVar25 & 0x1f)" identifier = (binary_expression "uVar9 >> (uVar25 & 0x1f)" identifier >> (parenthesized_expression "(uVar25 & 0x1f)" ( (binary_expression "uVar25 & 0x1f" identifier & number_literal) )))) ;) })) (expression_statement "uVar28 = sVar27 - uVar10;" (assignment_expression "uVar28 = sVar27 - uVar10" identifier = (binary_expression "sVar27 - uVar10" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar28;" (assignment_expression "(quantum_info->state).bits = uVar28" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f));" (assignment_expression "bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f))" ( (binary_expression "(~(-1 << (uVar10 & 0x1f)) & uVar11) << (uVar28 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar10 & 0x1f)) & uVar11)" ( (binary_expression "~(-1 << (uVar10 & 0x1f)) & uVar11" (unary_expression "~(-1 << (uVar10 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar10 & 0x1f))" ( (binary_expression "-1 << (uVar10 & 0x1f)" number_literal << (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar28 & 0x1f)" ( (binary_expression "uVar28 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar28 & 0x20) != 0) {\n            bVar15 = 0;\n          }" if (parenthesized_expression "((uVar28 & 0x20) != 0)" ( (binary_expression "(uVar28 & 0x20) != 0" (parenthesized_expression "(uVar28 & 0x20)" ( (binary_expression "uVar28 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar15 = 0;\n          }" { (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) })) (expression_statement "*pbVar31 = bVar15 | *pbVar31;" (assignment_expression "*pbVar31 = bVar15 | *pbVar31" (pointer_expression "*pbVar31" * identifier) = (binary_expression "bVar15 | *pbVar31" identifier | (pointer_expression "*pbVar31" * identifier))) ;) (if_statement "if (uVar28 != 0) break;" if (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 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 "sVar27 = 8;" (assignment_expression "sVar27 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar17 < 1) goto LAB_00165418;" if (parenthesized_expression "((int)uVar17 < 1)" ( (binary_expression "(int)uVar17 < 1" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00165418;" goto statement_identifier ;)) })) (expression_statement "sVar27 = (quantum_info->state).bits;" (assignment_expression "sVar27 = (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)uVar17)" ( (binary_expression "0 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_00165418:\n      pPVar8 = image->channel_map;" statement_identifier : (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;)) (expression_statement "uVar25 = quantum_info->depth;" (assignment_expression "uVar25 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (pPVar8[4].traits == BlendPixelTrait) {\nLAB_0016554c:\n        fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n        if (fVar42 <= (float)uVar44) goto LAB_00165430;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar51 = 0;\n      }" if (parenthesized_expression "(pPVar8[4].traits == BlendPixelTrait)" ( (binary_expression "pPVar8[4].traits == BlendPixelTrait" (field_expression "pPVar8[4].traits" (subscript_expression "pPVar8[4]" identifier [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\nLAB_0016554c:\n        fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);\n        if (fVar42 <= (float)uVar44) goto LAB_00165430;\n        dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);\n        dVar46 = (dVar46 * (double)fVar42) / dVar47;\n        if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }\n      }" { (labeled_statement "LAB_0016554c:\n        fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);" statement_identifier : (expression_statement "fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4);" (assignment_expression "fVar42 = fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4)" identifier = (binary_expression "fVar39 - *(float *)(iVar26 + pPVar8[4].offset * 4)" identifier - (pointer_expression "*(float *)(iVar26 + pPVar8[4].offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8[4].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8[4].offset * 4)" ( (binary_expression "iVar26 + pPVar8[4].offset * 4" identifier + (binary_expression "pPVar8[4].offset * 4" (field_expression "pPVar8[4].offset" (subscript_expression "pPVar8[4]" identifier [ number_literal ]) . field_identifier) * number_literal)) )))))) ;)) (if_statement "if (fVar42 <= (float)uVar44) goto LAB_00165430;" if (parenthesized_expression "(fVar42 <= (float)uVar44)" ( (binary_expression "fVar42 <= (float)uVar44" identifier <= (cast_expression "(float)uVar44" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00165430;" goto statement_identifier ;)) (expression_statement "dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);" (assignment_expression "dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8)" identifier = (cast_expression "(double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR___floatundidf_003a8960)" ( (pointer_expression "*(code *)PTR___floatundidf_003a8960" * (cast_expression "(code *)PTR___floatundidf_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_c0,local_b8)" ( identifier , identifier ))))) ;) (expression_statement "dVar46 = (dVar46 * (double)fVar42) / dVar47;" (assignment_expression "dVar46 = (dVar46 * (double)fVar42) / dVar47" identifier = (binary_expression "(dVar46 * (double)fVar42) / dVar47" (parenthesized_expression "(dVar46 * (double)fVar42)" ( (binary_expression "dVar46 * (double)fVar42" identifier * (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) (if_statement "if (dVar46 < dVar37) {\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }\n        else {\n          uVar51 = 0xffffffffffffffff;\n        }" if (parenthesized_expression "(dVar46 < dVar37)" ( (binary_expression "dVar46 < dVar37" identifier < identifier) )) (compound_statement "{\n          uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);\n        }" { (expression_statement "uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45);" (assignment_expression "uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45)" identifier = (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar45)" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar46 + dVar45)" ( (binary_expression "dVar46 + dVar45" identifier + identifier) )))) ;) }) (else_clause "else {\n          uVar51 = 0xffffffffffffffff;\n        }" else (compound_statement "{\n          uVar51 = 0xffffffffffffffff;\n        }" { (expression_statement "uVar51 = 0xffffffffffffffff;" (assignment_expression "uVar51 = 0xffffffffffffffff" identifier = number_literal) ;) }))) }) (else_clause "else {\nLAB_00165430:\n        uVar51 = 0;\n      }" else (compound_statement "{\nLAB_00165430:\n        uVar51 = 0;\n      }" { (labeled_statement "LAB_00165430:\n        uVar51 = 0;" statement_identifier : (expression_statement "uVar51 = 0;" (assignment_expression "uVar51 = 0" identifier = number_literal) ;)) }))) (if_statement "if (sVar27 == 0) {\n        (quantum_info->state).bits = 8;\n      }" if (parenthesized_expression "(sVar27 == 0)" ( (binary_expression "sVar27 == 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) ;) })) }))) (expression_statement "uVar9 = (uint)((ulonglong)uVar51 >> 0x20);" (assignment_expression "uVar9 = (uint)((ulonglong)uVar51 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar51 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar51 >> 0x20)" ( (binary_expression "(ulonglong)uVar51 >> 0x20" (cast_expression "(ulonglong)uVar51" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (0 < (int)uVar25) {\n      do {\n        uVar17 = (quantum_info->state).bits;\n        uVar10 = uVar17;\n        if (uVar25 <= uVar17) {\n          uVar10 = uVar25;\n        }\n        uVar11 = uVar25 - uVar10;\n        uVar25 = uVar11;\n        if ((int)uVar11 < 0) {\n          uVar25 = 0;\n        }\n        if (uVar17 == 8) {\n          *pbVar31 = 0;\n        }\n        uVar28 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n        if ((uVar25 & 0x20) != 0) {\n          uVar28 = uVar9 >> (uVar25 & 0x1f);\n        }\n        uVar17 = uVar17 - uVar10;\n        (quantum_info->state).bits = uVar17;\n        bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f));\n        if ((uVar17 & 0x20) != 0) {\n          bVar15 = 0;\n        }\n        *pbVar31 = bVar15 | *pbVar31;\n        if (uVar17 == 0) {\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n        }\n      } while (0 < (int)uVar11);\n    }" if (parenthesized_expression "(0 < (int)uVar25)" ( (binary_expression "0 < (int)uVar25" number_literal < (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      do {\n        uVar17 = (quantum_info->state).bits;\n        uVar10 = uVar17;\n        if (uVar25 <= uVar17) {\n          uVar10 = uVar25;\n        }\n        uVar11 = uVar25 - uVar10;\n        uVar25 = uVar11;\n        if ((int)uVar11 < 0) {\n          uVar25 = 0;\n        }\n        if (uVar17 == 8) {\n          *pbVar31 = 0;\n        }\n        uVar28 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n        if ((uVar25 & 0x20) != 0) {\n          uVar28 = uVar9 >> (uVar25 & 0x1f);\n        }\n        uVar17 = uVar17 - uVar10;\n        (quantum_info->state).bits = uVar17;\n        bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f));\n        if ((uVar17 & 0x20) != 0) {\n          bVar15 = 0;\n        }\n        *pbVar31 = bVar15 | *pbVar31;\n        if (uVar17 == 0) {\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n        }\n      } while (0 < (int)uVar11);\n    }" { (do_statement "do {\n        uVar17 = (quantum_info->state).bits;\n        uVar10 = uVar17;\n        if (uVar25 <= uVar17) {\n          uVar10 = uVar25;\n        }\n        uVar11 = uVar25 - uVar10;\n        uVar25 = uVar11;\n        if ((int)uVar11 < 0) {\n          uVar25 = 0;\n        }\n        if (uVar17 == 8) {\n          *pbVar31 = 0;\n        }\n        uVar28 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n        if ((uVar25 & 0x20) != 0) {\n          uVar28 = uVar9 >> (uVar25 & 0x1f);\n        }\n        uVar17 = uVar17 - uVar10;\n        (quantum_info->state).bits = uVar17;\n        bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f));\n        if ((uVar17 & 0x20) != 0) {\n          bVar15 = 0;\n        }\n        *pbVar31 = bVar15 | *pbVar31;\n        if (uVar17 == 0) {\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n        }\n      } while (0 < (int)uVar11);" do (compound_statement "{\n        uVar17 = (quantum_info->state).bits;\n        uVar10 = uVar17;\n        if (uVar25 <= uVar17) {\n          uVar10 = uVar25;\n        }\n        uVar11 = uVar25 - uVar10;\n        uVar25 = uVar11;\n        if ((int)uVar11 < 0) {\n          uVar25 = 0;\n        }\n        if (uVar17 == 8) {\n          *pbVar31 = 0;\n        }\n        uVar28 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);\n        if ((uVar25 & 0x20) != 0) {\n          uVar28 = uVar9 >> (uVar25 & 0x1f);\n        }\n        uVar17 = uVar17 - uVar10;\n        (quantum_info->state).bits = uVar17;\n        bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f));\n        if ((uVar17 & 0x20) != 0) {\n          bVar15 = 0;\n        }\n        *pbVar31 = bVar15 | *pbVar31;\n        if (uVar17 == 0) {\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n        }\n      }" { (expression_statement "uVar17 = (quantum_info->state).bits;" (assignment_expression "uVar17 = (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 "uVar10 = uVar17;" (assignment_expression "uVar10 = uVar17" identifier = identifier) ;) (if_statement "if (uVar25 <= uVar17) {\n          uVar10 = uVar25;\n        }" if (parenthesized_expression "(uVar25 <= uVar17)" ( (binary_expression "uVar25 <= uVar17" identifier <= identifier) )) (compound_statement "{\n          uVar10 = uVar25;\n        }" { (expression_statement "uVar10 = uVar25;" (assignment_expression "uVar10 = uVar25" identifier = identifier) ;) })) (expression_statement "uVar11 = uVar25 - uVar10;" (assignment_expression "uVar11 = uVar25 - uVar10" identifier = (binary_expression "uVar25 - uVar10" identifier - identifier)) ;) (expression_statement "uVar25 = uVar11;" (assignment_expression "uVar25 = uVar11" identifier = identifier) ;) (if_statement "if ((int)uVar11 < 0) {\n          uVar25 = 0;\n        }" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar25 = 0;\n        }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar17 == 8) {\n          *pbVar31 = 0;\n        }" if (parenthesized_expression "(uVar17 == 8)" ( (binary_expression "uVar17 == 8" identifier == number_literal) )) (compound_statement "{\n          *pbVar31 = 0;\n        }" { (expression_statement "*pbVar31 = 0;" (assignment_expression "*pbVar31 = 0" (pointer_expression "*pbVar31" * identifier) = number_literal) ;) })) (expression_statement "uVar28 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f);" (assignment_expression "uVar28 = (uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f)" identifier = (binary_expression "(uVar9 << 1) << (~uVar25 & 0x1f) | (uint)uVar51 >> (uVar25 & 0x1f)" (binary_expression "(uVar9 << 1) << (~uVar25 & 0x1f)" (parenthesized_expression "(uVar9 << 1)" ( (binary_expression "uVar9 << 1" identifier << number_literal) )) << (parenthesized_expression "(~uVar25 & 0x1f)" ( (binary_expression "~uVar25 & 0x1f" (unary_expression "~uVar25" ~ identifier) & number_literal) ))) | (binary_expression "(uint)uVar51 >> (uVar25 & 0x1f)" (cast_expression "(uint)uVar51" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar25 & 0x1f)" ( (binary_expression "uVar25 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if ((uVar25 & 0x20) != 0) {\n          uVar28 = uVar9 >> (uVar25 & 0x1f);\n        }" if (parenthesized_expression "((uVar25 & 0x20) != 0)" ( (binary_expression "(uVar25 & 0x20) != 0" (parenthesized_expression "(uVar25 & 0x20)" ( (binary_expression "uVar25 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar28 = uVar9 >> (uVar25 & 0x1f);\n        }" { (expression_statement "uVar28 = uVar9 >> (uVar25 & 0x1f);" (assignment_expression "uVar28 = uVar9 >> (uVar25 & 0x1f)" identifier = (binary_expression "uVar9 >> (uVar25 & 0x1f)" identifier >> (parenthesized_expression "(uVar25 & 0x1f)" ( (binary_expression "uVar25 & 0x1f" identifier & number_literal) )))) ;) })) (expression_statement "uVar17 = uVar17 - uVar10;" (assignment_expression "uVar17 = uVar17 - uVar10" identifier = (binary_expression "uVar17 - uVar10" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar17;" (assignment_expression "(quantum_info->state).bits = uVar17" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f));" (assignment_expression "bVar15 = (byte)((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f))" ( (binary_expression "(~(-1 << (uVar10 & 0x1f)) & uVar28) << (uVar17 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar10 & 0x1f)) & uVar28)" ( (binary_expression "~(-1 << (uVar10 & 0x1f)) & uVar28" (unary_expression "~(-1 << (uVar10 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar10 & 0x1f))" ( (binary_expression "-1 << (uVar10 & 0x1f)" number_literal << (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar17 & 0x1f)" ( (binary_expression "uVar17 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar17 & 0x20) != 0) {\n          bVar15 = 0;\n        }" if (parenthesized_expression "((uVar17 & 0x20) != 0)" ( (binary_expression "(uVar17 & 0x20) != 0" (parenthesized_expression "(uVar17 & 0x20)" ( (binary_expression "uVar17 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          bVar15 = 0;\n        }" { (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) })) (expression_statement "*pbVar31 = bVar15 | *pbVar31;" (assignment_expression "*pbVar31 = bVar15 | *pbVar31" (pointer_expression "*pbVar31" * identifier) = (binary_expression "bVar15 | *pbVar31" identifier | (pointer_expression "*pbVar31" * identifier))) ;) (if_statement "if (uVar17 == 0) {\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n        }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n          pbVar31 = pbVar31 + 1;\n          (quantum_info->state).bits = 8;\n        }" { (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 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) ;) })) }) while (parenthesized_expression "(0 < (int)uVar11)" ( (binary_expression "0 < (int)uVar11" number_literal < (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (expression_statement "iVar26 = iVar26 + image->number_channels * 4;" (assignment_expression "iVar26 = iVar26 + image->number_channels * 4" identifier = (binary_expression "iVar26 + image->number_channels * 4" identifier + (binary_expression "image->number_channels * 4" (field_expression "image->number_channels" identifier -> field_identifier) * number_literal))) ;) (expression_statement "number_pixels = CONCAT44(iVar26,pbVar31 + quantum_info->pad);" (assignment_expression "number_pixels = CONCAT44(iVar26,pbVar31 + quantum_info->pad)" identifier = (call_expression "CONCAT44(iVar26,pbVar31 + quantum_info->pad)" identifier (argument_list "(iVar26,pbVar31 + quantum_info->pad)" ( identifier , (binary_expression "pbVar31 + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) )))) ;) (if_statement "if (puVar29 == q) {\n      return;\n    }" if (parenthesized_expression "(puVar29 == q)" ( (binary_expression "puVar29 == q" identifier == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4);" (assignment_expression "fVar42 = *(float *)(iVar26 + pPVar8[2].offset * 4)" identifier = (pointer_expression "*(float *)(iVar26 + pPVar8[2].offset * 4)" * (cast_expression "(float *)(iVar26 + pPVar8[2].offset * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + pPVar8[2].offset * 4)" ( (binary_expression "iVar26 + pPVar8[2].offset * 4" identifier + (binary_expression "pPVar8[2].offset * 4" (field_expression "pPVar8[2].offset" (subscript_expression "pPVar8[2]" identifier [ number_literal ]) . field_identifier) * number_literal)) ))))) ;) (expression_statement "uVar25 = quantum_info->depth;" (assignment_expression "uVar25 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(NAN(fVar42))" ( (call_expression "NAN(fVar42)" identifier (argument_list "(fVar42)" ( identifier ))) )) ;)) (labeled_statement "LAB_001650f0:\n  if (fVar42 <= (float)uVar44) goto LAB_00165520;" statement_identifier : (if_statement "if (fVar42 <= (float)uVar44) goto LAB_00165520;" if (parenthesized_expression "(fVar42 <= (float)uVar44)" ( (binary_expression "fVar42 <= (float)uVar44" identifier <= (cast_expression "(float)uVar44" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00165520;" goto statement_identifier ;))) (expression_statement "dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8);" (assignment_expression "dVar46 = (double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8)" identifier = (cast_expression "(double)(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR___floatundidf_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR___floatundidf_003a8960)" ( (pointer_expression "*(code *)PTR___floatundidf_003a8960" * (cast_expression "(code *)PTR___floatundidf_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_c0,local_b8)" ( identifier , identifier ))))) ;) (expression_statement "dVar46 = (dVar46 * (double)fVar42) / dVar34;" (assignment_expression "dVar46 = (dVar46 * (double)fVar42) / dVar34" identifier = (binary_expression "(dVar46 * (double)fVar42) / dVar34" (parenthesized_expression "(dVar46 * (double)fVar42)" ( (binary_expression "dVar46 * (double)fVar42" identifier * (cast_expression "(double)fVar42" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) (if_statement "if (dVar46 < dVar33) {\n    uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar35);\n  }\n  else {\n    uVar51 = 0xffffffffffffffff;\n  }" if (parenthesized_expression "(dVar46 < dVar33)" ( (binary_expression "dVar46 < dVar33" identifier < identifier) )) (compound_statement "{\n    uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar35);\n  }" { (expression_statement "uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar35);" (assignment_expression "uVar51 = (*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar35)" identifier = (call_expression "(*(code *)PTR___fixunsdfdi_003a8954)(dVar46 + dVar35)" (parenthesized_expression "(*(code *)PTR___fixunsdfdi_003a8954)" ( (pointer_expression "*(code *)PTR___fixunsdfdi_003a8954" * (cast_expression "(code *)PTR___fixunsdfdi_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar46 + dVar35)" ( (binary_expression "dVar46 + dVar35" identifier + identifier) )))) ;) }) (else_clause "else {\n    uVar51 = 0xffffffffffffffff;\n  }" else (compound_statement "{\n    uVar51 = 0xffffffffffffffff;\n  }" { (expression_statement "uVar51 = 0xffffffffffffffff;" (assignment_expression "uVar51 = 0xffffffffffffffff" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00165130;" goto statement_identifier ;) })))
(translation_unit "void FUN_00164d40(int param_1,uint *param_2,undefined4 param_3,int param_4,int param_5,byte *param_6\n                 ,int param_7)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar6;\n  undefined2 uVar5;\n  int iVar7;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  uint uVar8;\n  uint extraout_v1_02;\n  uint extraout_v1_03;\n  uint extraout_v1_04;\n  uint uVar9;\n  uint extraout_v1_05;\n  uint extraout_v1_06;\n  uint extraout_v1_07;\n  uint extraout_v1_08;\n  uint extraout_v1_09;\n  byte bVar12;\n  byte bVar13;\n  uint uVar10;\n  byte *pbVar11;\n  byte bVar14;\n  uint uVar15;\n  uint uVar16;\n  byte bVar17;\n  byte bVar18;\n  byte bVar19;\n  byte bVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  int iVar24;\n  double dVar25;\n  float fVar31;\n  double dVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  float fVar32;\n  double dVar30;\n  double extraout_f0_1;\n  float fVar33;\n  ulonglong uVar34;\n  ulonglong uVar35;\n  undefined8 uVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  undefined8 uVar43;\n  int local_c0;\n  uint local_b8;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar3 = PTR_s_t_to_left_003a88e4;\n  puVar2 = PTR_LAB_003a88e0;\n  if (param_7 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  if (*(int *)(param_7 + 0x1c) != -0x54535255) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  uVar21 = *param_2;\n  if (uVar21 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (param_4 < 1) {\n      return;\n    }\n    iVar22 = 0;\n    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar21 < 0x11) {\n    if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }\n  uVar8 = 0;\n  if (uVar21 < 0x41) {\n    uVar8 = uVar21;\n  }\n  uVar8 = uVar8 - 1;\n  uVar15 = 2 << (uVar8 & 0x1f);\n  uVar9 = uVar15;\n  uVar23 = 1 >> (~uVar8 & 0x1f);\n  if ((uVar8 & 0x20) != 0) {\n    uVar9 = 0;\n    uVar23 = uVar15;\n  }\n  local_b8 = uVar9 - 1;\n  local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1);\nLAB_0016507c:\n  if (param_4 < 1) {\n    return;\n  }\n  uVar36 = 0;\n  iVar24 = *(int *)(param_1 + 0x2d0);\n  iVar22 = 0;\n  dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n  dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n  dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n  fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n  dVar25 = dVar29;\n  dVar26 = dVar39;\n  dVar27 = dVar37;\n  dVar28 = dVar29;\n  if (!NAN(fVar33)) goto LAB_001650f0;\nLAB_00165520:\n  do {\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  } while (NAN(fVar33));\nLAB_001650f0:\n  if (fVar33 <= (float)uVar36) goto LAB_00165520;\n  dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n  dVar38 = (dVar38 * (double)fVar33) / dVar26;\n  if (dVar38 < dVar25) {\n    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);\n  }\n  else {\n    uVar43 = 0xffffffffffffffff;\n  }\n  goto LAB_00165130;\n}\n\n" (function_definition "void FUN_00164d40(int param_1,uint *param_2,undefined4 param_3,int param_4,int param_5,byte *param_6\n                 ,int param_7)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar6;\n  undefined2 uVar5;\n  int iVar7;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  uint uVar8;\n  uint extraout_v1_02;\n  uint extraout_v1_03;\n  uint extraout_v1_04;\n  uint uVar9;\n  uint extraout_v1_05;\n  uint extraout_v1_06;\n  uint extraout_v1_07;\n  uint extraout_v1_08;\n  uint extraout_v1_09;\n  byte bVar12;\n  byte bVar13;\n  uint uVar10;\n  byte *pbVar11;\n  byte bVar14;\n  uint uVar15;\n  uint uVar16;\n  byte bVar17;\n  byte bVar18;\n  byte bVar19;\n  byte bVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  int iVar24;\n  double dVar25;\n  float fVar31;\n  double dVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  float fVar32;\n  double dVar30;\n  double extraout_f0_1;\n  float fVar33;\n  ulonglong uVar34;\n  ulonglong uVar35;\n  undefined8 uVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  undefined8 uVar43;\n  int local_c0;\n  uint local_b8;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar3 = PTR_s_t_to_left_003a88e4;\n  puVar2 = PTR_LAB_003a88e0;\n  if (param_7 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  if (*(int *)(param_7 + 0x1c) != -0x54535255) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  uVar21 = *param_2;\n  if (uVar21 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (param_4 < 1) {\n      return;\n    }\n    iVar22 = 0;\n    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar21 < 0x11) {\n    if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }\n  uVar8 = 0;\n  if (uVar21 < 0x41) {\n    uVar8 = uVar21;\n  }\n  uVar8 = uVar8 - 1;\n  uVar15 = 2 << (uVar8 & 0x1f);\n  uVar9 = uVar15;\n  uVar23 = 1 >> (~uVar8 & 0x1f);\n  if ((uVar8 & 0x20) != 0) {\n    uVar9 = 0;\n    uVar23 = uVar15;\n  }\n  local_b8 = uVar9 - 1;\n  local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1);\nLAB_0016507c:\n  if (param_4 < 1) {\n    return;\n  }\n  uVar36 = 0;\n  iVar24 = *(int *)(param_1 + 0x2d0);\n  iVar22 = 0;\n  dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n  dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n  dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n  fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n  dVar25 = dVar29;\n  dVar26 = dVar39;\n  dVar27 = dVar37;\n  dVar28 = dVar29;\n  if (!NAN(fVar33)) goto LAB_001650f0;\nLAB_00165520:\n  do {\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  } while (NAN(fVar33));\nLAB_001650f0:\n  if (fVar33 <= (float)uVar36) goto LAB_00165520;\n  dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n  dVar38 = (dVar38 * (double)fVar33) / dVar26;\n  if (dVar38 < dVar25) {\n    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);\n  }\n  else {\n    uVar43 = 0xffffffffffffffff;\n  }\n  goto LAB_00165130;\n}" primitive_type (function_declarator "FUN_00164d40(int param_1,uint *param_2,undefined4 param_3,int param_4,int param_5,byte *param_6\n                 ,int param_7)" identifier (parameter_list "(int param_1,uint *param_2,undefined4 param_3,int param_4,int param_5,byte *param_6\n                 ,int param_7)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "byte *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int param_7" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar6;\n  undefined2 uVar5;\n  int iVar7;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  uint uVar8;\n  uint extraout_v1_02;\n  uint extraout_v1_03;\n  uint extraout_v1_04;\n  uint uVar9;\n  uint extraout_v1_05;\n  uint extraout_v1_06;\n  uint extraout_v1_07;\n  uint extraout_v1_08;\n  uint extraout_v1_09;\n  byte bVar12;\n  byte bVar13;\n  uint uVar10;\n  byte *pbVar11;\n  byte bVar14;\n  uint uVar15;\n  uint uVar16;\n  byte bVar17;\n  byte bVar18;\n  byte bVar19;\n  byte bVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  int iVar24;\n  double dVar25;\n  float fVar31;\n  double dVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  float fVar32;\n  double dVar30;\n  double extraout_f0_1;\n  float fVar33;\n  ulonglong uVar34;\n  ulonglong uVar35;\n  undefined8 uVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  undefined8 uVar43;\n  int local_c0;\n  uint local_b8;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar3 = PTR_s_t_to_left_003a88e4;\n  puVar2 = PTR_LAB_003a88e0;\n  if (param_7 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  if (*(int *)(param_7 + 0x1c) != -0x54535255) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  uVar21 = *param_2;\n  if (uVar21 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (param_4 < 1) {\n      return;\n    }\n    iVar22 = 0;\n    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar21 < 0x11) {\n    if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }\n  uVar8 = 0;\n  if (uVar21 < 0x41) {\n    uVar8 = uVar21;\n  }\n  uVar8 = uVar8 - 1;\n  uVar15 = 2 << (uVar8 & 0x1f);\n  uVar9 = uVar15;\n  uVar23 = 1 >> (~uVar8 & 0x1f);\n  if ((uVar8 & 0x20) != 0) {\n    uVar9 = 0;\n    uVar23 = uVar15;\n  }\n  local_b8 = uVar9 - 1;\n  local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1);\nLAB_0016507c:\n  if (param_4 < 1) {\n    return;\n  }\n  uVar36 = 0;\n  iVar24 = *(int *)(param_1 + 0x2d0);\n  iVar22 = 0;\n  dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n  dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n  dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n  fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n  dVar25 = dVar29;\n  dVar26 = dVar39;\n  dVar27 = dVar37;\n  dVar28 = dVar29;\n  if (!NAN(fVar33)) goto LAB_001650f0;\nLAB_00165520:\n  do {\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  } while (NAN(fVar33));\nLAB_001650f0:\n  if (fVar33 <= (float)uVar36) goto LAB_00165520;\n  dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n  dVar38 = (dVar38 * (double)fVar33) / dVar26;\n  if (dVar38 < dVar25) {\n    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);\n  }\n  else {\n    uVar43 = 0xffffffffffffffff;\n  }\n  goto LAB_00165130;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "undefined2 uVar5;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int extraout_v1_00;" primitive_type identifier ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint extraout_v1_02;" type_identifier identifier ;) (declaration "uint extraout_v1_03;" type_identifier identifier ;) (declaration "uint extraout_v1_04;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint extraout_v1_05;" type_identifier identifier ;) (declaration "uint extraout_v1_06;" type_identifier identifier ;) (declaration "uint extraout_v1_07;" type_identifier identifier ;) (declaration "uint extraout_v1_08;" type_identifier identifier ;) (declaration "uint extraout_v1_09;" type_identifier identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "double dVar25;" primitive_type identifier ;) (declaration "float fVar31;" primitive_type identifier ;) (declaration "double dVar26;" primitive_type identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "double dVar28;" primitive_type identifier ;) (declaration "double dVar29;" primitive_type identifier ;) (declaration "float fVar32;" primitive_type identifier ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "double extraout_f0_1;" primitive_type identifier ;) (declaration "float fVar33;" primitive_type identifier ;) (declaration "ulonglong uVar34;" type_identifier identifier ;) (declaration "ulonglong uVar35;" type_identifier identifier ;) (declaration "undefined8 uVar36;" type_identifier identifier ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "double dVar38;" primitive_type identifier ;) (declaration "double dVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "double dVar41;" primitive_type identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "undefined8 uVar43;" type_identifier identifier ;) (declaration "int local_c0;" primitive_type identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (expression_statement "puVar4 = PTR_s_courses_003a88ec;" (assignment_expression "puVar4 = PTR_s_courses_003a88ec" identifier = identifier) ;) (expression_statement "puVar3 = PTR_s_t_to_left_003a88e4;" (assignment_expression "puVar3 = PTR_s_t_to_left_003a88e4" identifier = identifier) ;) (expression_statement "puVar2 = PTR_LAB_003a88e0;" (assignment_expression "puVar2 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if (param_7 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" if (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1cac" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x7af0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x75c0" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(param_7 + 0x1c) != -0x54535255) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" if (parenthesized_expression "(*(int *)(param_7 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_7 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_7 + 0x1c)" * (cast_expression "(int *)(param_7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x1c)" ( (binary_expression "param_7 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0)" ( (binary_expression "PTR_LAB_003a88e0 + 0x294c" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x7af0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x75c0" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (uVar21 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (param_4 < 1) {\n      return;\n    }\n    iVar22 = 0;\n    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );\n  }" if (parenthesized_expression "(uVar21 == 0x10)" ( (binary_expression "uVar21 == 0x10" identifier == number_literal) )) (compound_statement "{\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (param_4 < 1) {\n      return;\n    }\n    iVar22 = 0;\n    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );\n  }" { (if_statement "if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\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_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }" { (if_statement "if (param_4 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) (expression_statement "iVar24 = 4;" (assignment_expression "iVar24 = 4" identifier = number_literal) ;) (expression_statement "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);" (assignment_expression "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1440)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1440)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1440)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1440" identifier + number_literal) ))))) ;) (expression_statement "uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar26 = dVar25;" (assignment_expression "dVar26 = dVar25" identifier = identifier) ;) (expression_statement "dVar27 = dVar25;" (assignment_expression "dVar27 = dVar25" identifier = identifier) ;) (expression_statement "dVar28 = dVar25;" (assignment_expression "dVar28 = dVar25" identifier = identifier) ;) (do_statement "do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);" do (compound_statement "{\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      }" { (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25" identifier = (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * identifier)) ;) (expression_statement "uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));" (assignment_expression "uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" identifier = (call_expression "FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" identifier (argument_list "(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" ( (call_expression "CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" identifier (argument_list "((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" ( (cast_expression "(int)((ulonglong)dVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar25 >> 0x20)" ( (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(float)dVar25" ( (type_descriptor "float" primitive_type) ) identifier) ))) )))) ;) (expression_statement "bVar13 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar13 = (byte)((ushort)uVar5 >> 8)" identifier = (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar5 >> 8)" ( (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" if (parenthesized_expression "(param_2[0x11] == uVar21)" ( (binary_expression "param_2[0x11] == uVar21" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }" { (expression_statement "*param_6 = (byte)uVar5;" (assignment_expression "*param_6 = (byte)uVar5" (pointer_expression "*param_6" * identifier) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" else (compound_statement "{\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" { (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = (byte)uVar5;" (assignment_expression "param_6[1] = (byte)uVar5" (subscript_expression "param_6[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27" identifier = (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * identifier)) ;) (expression_statement "uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));" (assignment_expression "uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" identifier = (call_expression "FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" identifier (argument_list "(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" ( (call_expression "CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" identifier (argument_list "((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" ( (cast_expression "(int)((ulonglong)dVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar25 >> 0x20)" ( (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(float)dVar25" ( (type_descriptor "float" primitive_type) ) identifier) ))) )))) ;) (expression_statement "bVar13 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar13 = (byte)((ushort)uVar5 >> 8)" identifier = (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar5 >> 8)" ( (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }" if (parenthesized_expression "(param_2[0x11] == uVar21)" ( (binary_expression "param_2[0x11] == uVar21" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }" { (expression_statement "param_6[2] = (byte)uVar5;" (assignment_expression "param_6[2] = (byte)uVar5" (subscript_expression "param_6[2]" identifier [ number_literal ]) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[3] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }" else (compound_statement "{\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }" { (expression_statement "param_6[2] = bVar13;" (assignment_expression "param_6[2] = bVar13" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = (byte)uVar5;" (assignment_expression "param_6[3] = (byte)uVar5" (subscript_expression "param_6[3]" identifier [ number_literal ]) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "param_6 = param_6 + 4;" (assignment_expression "param_6 = param_6 + 4" identifier = (binary_expression "param_6 + 4" identifier + number_literal)) ;) (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26" identifier = (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * identifier)) ;) (expression_statement "uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);" (assignment_expression "uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" identifier = (call_expression "CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" identifier (argument_list "((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" ( (cast_expression "(int)((ulonglong)dVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar25 >> 0x20)" ( (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(float)dVar25" ( (type_descriptor "float" primitive_type) ) identifier) )))) ;) (expression_statement "uVar5 = FUN_00155b60(uVar35);" (assignment_expression "uVar5 = FUN_00155b60(uVar35)" identifier = (call_expression "FUN_00155b60(uVar35)" identifier (argument_list "(uVar35)" ( identifier )))) ;) (expression_statement "bVar13 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar13 = (byte)((ushort)uVar5 >> 8)" identifier = (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar5 >> 8)" ( (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" if (parenthesized_expression "(param_2[0x11] == uVar21)" ( (binary_expression "param_2[0x11] == uVar21" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }" { (expression_statement "*param_6 = (byte)uVar5;" (assignment_expression "*param_6 = (byte)uVar5" (pointer_expression "*param_6" * identifier) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" else (compound_statement "{\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" { (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = (byte)uVar5;" (assignment_expression "param_6[1] = (byte)uVar5" (subscript_expression "param_6[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "param_6 = param_6 + 2;" (assignment_expression "param_6 = param_6 + 2" identifier = (binary_expression "param_6 + 2" identifier + number_literal)) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) == identifier) )) (compound_statement "{\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }" { (expression_statement "dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;" (assignment_expression "dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28" identifier = (binary_expression "(double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28" (cast_expression "(double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" ( (binary_expression "(float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (cast_expression "(float)uVar34" ( (type_descriptor "float" primitive_type) ) identifier) - (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ))) * identifier)) ;) (expression_statement "uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);" (assignment_expression "uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" identifier = (call_expression "CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" identifier (argument_list "((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" ( (cast_expression "(int)((ulonglong)dVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)dVar25 >> 0x20)" ( (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(float)dVar25" ( (type_descriptor "float" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }" else (compound_statement "{\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }" { (expression_statement "uVar35 = uVar35 & 0xffffffff00000000;" (assignment_expression "uVar35 = uVar35 & 0xffffffff00000000" identifier = (binary_expression "uVar35 & 0xffffffff00000000" identifier & number_literal)) ;) }))) (expression_statement "uVar5 = FUN_00155b60(uVar35);" (assignment_expression "uVar5 = FUN_00155b60(uVar35)" identifier = (call_expression "FUN_00155b60(uVar35)" identifier (argument_list "(uVar35)" ( identifier )))) ;) (expression_statement "bVar13 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar13 = (byte)((ushort)uVar5 >> 8)" identifier = (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar5 >> 8)" ( (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" if (parenthesized_expression "(param_2[0x11] == uVar21)" ( (binary_expression "param_2[0x11] == uVar21" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }" { (expression_statement "*param_6 = (byte)uVar5;" (assignment_expression "*param_6 = (byte)uVar5" (pointer_expression "*param_6" * identifier) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" else (compound_statement "{\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" { (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = (byte)uVar5;" (assignment_expression "param_6[1] = (byte)uVar5" (subscript_expression "param_6[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10] + 2;" (assignment_expression "param_6 = param_6 + param_2[10] + 2" identifier = (binary_expression "param_6 + param_2[10] + 2" (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "dVar25 = extraout_f0_1;" (assignment_expression "dVar25 = extraout_f0_1" identifier = identifier) ;) }) while (parenthesized_expression "(iVar22 != param_4)" ( (binary_expression "iVar22 != param_4" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if (param_4 < 1) {\n      return;\n    }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (do_statement "do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );" do (compound_statement "{\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }" { (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x11] != 1) goto LAB_00165b70;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165b70;" goto statement_identifier ;)) (labeled_statement "LAB_00165d84:\n        *param_6 = bVar12;" statement_identifier : (expression_statement "*param_6 = bVar12;" (assignment_expression "*param_6 = bVar12" (pointer_expression "*param_6" * identifier) = identifier) ;)) (expression_statement "param_6[1] = bVar14;" (assignment_expression "param_6[1] = bVar14" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }" else (compound_statement "{\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }" { (if_statement "if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" if (parenthesized_expression "(fVar33 < fVar31)" ( (binary_expression "fVar33 < fVar31" identifier < identifier) )) (compound_statement "{\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }" { (expression_statement "dVar27 = (double)fVar33 + dVar26;" (assignment_expression "dVar27 = (double)fVar33 + dVar26" identifier = (binary_expression "(double)fVar33 + dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }" if (parenthesized_expression "(dVar25 <= dVar27)" ( (binary_expression "dVar25 <= dVar27" identifier <= identifier) )) (compound_statement "{\n            dVar27 = dVar27 - dVar25;\n          }" { (expression_statement "dVar27 = dVar27 - dVar25;" (assignment_expression "dVar27 = dVar27 - dVar25" identifier = (binary_expression "dVar27 - dVar25" identifier - identifier)) ;) })) (expression_statement "bVar13 = (byte)((uint)(int)dVar27 >> 8);" (assignment_expression "bVar13 = (byte)((uint)(int)dVar27 >> 8)" identifier = (call_expression "(byte)((uint)(int)dVar27 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)(int)dVar27 >> 8)" ( (binary_expression "(uint)(int)dVar27 >> 8" (cast_expression "(uint)(int)dVar27" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) ;) (expression_statement "bVar17 = (byte)(int)dVar27;" (assignment_expression "bVar17 = (byte)(int)dVar27" identifier = (cast_expression "(byte)(int)dVar27" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" else (compound_statement "{\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" { (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" identifier = number_literal) ;) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) }))) (expression_statement "bVar12 = bVar17;" (assignment_expression "bVar12 = bVar17" identifier = identifier) ;) (expression_statement "bVar14 = bVar13;" (assignment_expression "bVar14 = bVar13" identifier = identifier) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_00165d84;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00165d84;" goto statement_identifier ;)) (labeled_statement "LAB_00165b70:\n        *param_6 = bVar13;" statement_identifier : (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" * identifier) = identifier) ;)) (expression_statement "param_6[1] = bVar17;" (assignment_expression "param_6[1] = bVar17" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }" { (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x11] != 1) goto LAB_00165be4;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165be4;" goto statement_identifier ;)) (labeled_statement "LAB_00165d64:\n        param_6[2] = bVar12;" statement_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] = bVar14;" (assignment_expression "param_6[3] = bVar14" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }" else (compound_statement "{\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }" { (if_statement "if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" if (parenthesized_expression "(fVar33 < fVar31)" ( (binary_expression "fVar33 < fVar31" identifier < identifier) )) (compound_statement "{\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }" { (expression_statement "dVar27 = (double)fVar33 + dVar26;" (assignment_expression "dVar27 = (double)fVar33 + dVar26" identifier = (binary_expression "(double)fVar33 + dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }" if (parenthesized_expression "(dVar25 <= dVar27)" ( (binary_expression "dVar25 <= dVar27" identifier <= identifier) )) (compound_statement "{\n            dVar27 = dVar27 - dVar25;\n          }" { (expression_statement "dVar27 = dVar27 - dVar25;" (assignment_expression "dVar27 = dVar27 - dVar25" identifier = (binary_expression "dVar27 - dVar25" identifier - identifier)) ;) })) (expression_statement "bVar13 = (byte)((uint)(int)dVar27 >> 8);" (assignment_expression "bVar13 = (byte)((uint)(int)dVar27 >> 8)" identifier = (call_expression "(byte)((uint)(int)dVar27 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)(int)dVar27 >> 8)" ( (binary_expression "(uint)(int)dVar27 >> 8" (cast_expression "(uint)(int)dVar27" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) ;) (expression_statement "bVar17 = (byte)(int)dVar27;" (assignment_expression "bVar17 = (byte)(int)dVar27" identifier = (cast_expression "(byte)(int)dVar27" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" else (compound_statement "{\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" { (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" identifier = number_literal) ;) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) }))) (expression_statement "bVar12 = bVar17;" (assignment_expression "bVar12 = bVar17" identifier = identifier) ;) (expression_statement "bVar14 = bVar13;" (assignment_expression "bVar14 = bVar13" identifier = identifier) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_00165d64;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00165d64;" goto statement_identifier ;)) (labeled_statement "LAB_00165be4:\n        param_6[2] = bVar13;" statement_identifier : (expression_statement "param_6[2] = bVar13;" (assignment_expression "param_6[2] = bVar13" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[3] = bVar17;" (assignment_expression "param_6[3] = bVar17" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }" { (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x11] != 1) goto LAB_00165c5c;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165c5c;" goto statement_identifier ;)) (labeled_statement "LAB_00165d44:\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] = bVar14;" (assignment_expression "param_6[5] = bVar14" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }" else (compound_statement "{\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }" { (if_statement "if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" if (parenthesized_expression "(fVar33 < fVar31)" ( (binary_expression "fVar33 < fVar31" identifier < identifier) )) (compound_statement "{\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }" { (expression_statement "dVar27 = (double)fVar33 + dVar26;" (assignment_expression "dVar27 = (double)fVar33 + dVar26" identifier = (binary_expression "(double)fVar33 + dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }" if (parenthesized_expression "(dVar25 <= dVar27)" ( (binary_expression "dVar25 <= dVar27" identifier <= identifier) )) (compound_statement "{\n            dVar27 = dVar27 - dVar25;\n          }" { (expression_statement "dVar27 = dVar27 - dVar25;" (assignment_expression "dVar27 = dVar27 - dVar25" identifier = (binary_expression "dVar27 - dVar25" identifier - identifier)) ;) })) (expression_statement "bVar13 = (byte)((uint)(int)dVar27 >> 8);" (assignment_expression "bVar13 = (byte)((uint)(int)dVar27 >> 8)" identifier = (call_expression "(byte)((uint)(int)dVar27 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)(int)dVar27 >> 8)" ( (binary_expression "(uint)(int)dVar27 >> 8" (cast_expression "(uint)(int)dVar27" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) ;) (expression_statement "bVar17 = (byte)(int)dVar27;" (assignment_expression "bVar17 = (byte)(int)dVar27" identifier = (cast_expression "(byte)(int)dVar27" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" else (compound_statement "{\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" { (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" identifier = number_literal) ;) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) }))) (expression_statement "bVar12 = bVar17;" (assignment_expression "bVar12 = bVar17" identifier = identifier) ;) (expression_statement "bVar14 = bVar13;" (assignment_expression "bVar14 = bVar13" identifier = identifier) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_00165d44;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00165d44;" goto statement_identifier ;)) (labeled_statement "LAB_00165c5c:\n        param_6[4] = bVar13;" statement_identifier : (expression_statement "param_6[4] = bVar13;" (assignment_expression "param_6[4] = bVar13" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[5] = bVar17;" (assignment_expression "param_6[5] = bVar17" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)" ( (comma_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier = (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) , (binary_expression "fVar33 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;" statement_identifier : (if_statement "if (param_2[0x11] != 1) goto LAB_00165c8c;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165c8c;" goto statement_identifier ;))) (labeled_statement "LAB_00165d24:\n        param_6[6] = bVar13;" statement_identifier : (expression_statement "param_6[6] = bVar13;" (assignment_expression "param_6[6] = bVar13" (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) ;) }) (else_clause "else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }" else (compound_statement "{\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }" { (if_statement "if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }" if (parenthesized_expression "(fVar31 <= fVar33)" ( (binary_expression "fVar31 <= fVar33" identifier <= identifier) )) (compound_statement "{\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }" { (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (goto_statement "goto LAB_00165c80;" goto statement_identifier ;) })) (expression_statement "dVar27 = (double)fVar33 + dVar26;" (assignment_expression "dVar27 = (double)fVar33 + dVar26" identifier = (binary_expression "(double)fVar33 + dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) + identifier)) ;) (if_statement "if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }" if (parenthesized_expression "(dVar27 < dVar25)" ( (binary_expression "dVar27 < dVar25" identifier < identifier) )) (compound_statement "{\n          uVar5 = (undefined2)(int)dVar27;\n        }" { (expression_statement "uVar5 = (undefined2)(int)dVar27;" (assignment_expression "uVar5 = (undefined2)(int)dVar27" identifier = (cast_expression "(undefined2)(int)dVar27" ( (type_descriptor "undefined2" type_identifier) ) (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }" else (compound_statement "{\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }" { (expression_statement "uVar5 = (undefined2)(int)(dVar27 - dVar25);" (assignment_expression "uVar5 = (undefined2)(int)(dVar27 - dVar25)" identifier = (call_expression "(undefined2)(int)(dVar27 - dVar25)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar27 - dVar25)" ( (binary_expression "dVar27 - dVar25" identifier - identifier) )))) ;) }))) (expression_statement "bVar12 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar12 = (byte)((ushort)uVar5 >> 8)" identifier = (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar5 >> 8)" ( (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)uVar5;" (assignment_expression "bVar13 = (byte)uVar5" identifier = (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_00165d24;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00165d24;" goto statement_identifier ;)) (labeled_statement "LAB_00165c8c:\n        param_6[6] = bVar12;" statement_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] = bVar13;" (assignment_expression "param_6[7] = bVar13" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10] + 8;" (assignment_expression "param_6 = param_6 + param_2[10] + 8" identifier = (binary_expression "param_6 + param_2[10] + 8" (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iVar22 == param_4) {\n        return;\n      }" if (parenthesized_expression "(iVar22 == param_4)" ( (binary_expression "iVar22 == param_4" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (uVar21 < 0x11) {\n    if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }" if (parenthesized_expression "(uVar21 < 0x11)" ( (binary_expression "uVar21 < 0x11" identifier < number_literal) )) (compound_statement "{\n    if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }" { (if_statement "if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }" if (parenthesized_expression "(uVar21 == 8)" ( (binary_expression "uVar21 == 8" identifier == number_literal) )) (compound_statement "{\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }" { (if_statement "if (param_4 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);" (assignment_expression "dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0" identifier + number_literal) ))))) ;) (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);" (assignment_expression "dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (do_statement "do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);" do (compound_statement "{\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          bVar13 = 0;\n        }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" { (expression_statement "dVar29 = (double)fVar33 / dVar26;" (assignment_expression "dVar29 = (double)fVar33 / dVar26" identifier = (binary_expression "(double)fVar33 / dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }" if (parenthesized_expression "(dVar29 < dVar25)" ( (binary_expression "dVar29 < dVar25" identifier < identifier) )) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }" { (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" if (parenthesized_expression "(dVar29 < dVar27)" ( (binary_expression "dVar29 < dVar27" identifier < identifier) )) (compound_statement "{\n              bVar13 = (byte)(int)dVar29;\n            }" { (expression_statement "bVar13 = (byte)(int)dVar29;" (assignment_expression "bVar13 = (byte)(int)dVar29" identifier = (cast_expression "(byte)(int)dVar29" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(int)dVar29" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" else (compound_statement "{\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" { (expression_statement "bVar13 = (byte)(int)(dVar29 - dVar27);" (assignment_expression "bVar13 = (byte)(int)(dVar29 - dVar27)" identifier = (call_expression "(byte)(int)(dVar29 - dVar27)" (call_expression "(byte)(int)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar29 - dVar27)" ( (binary_expression "dVar29 - dVar27" identifier - identifier) )))) ;) }))) }) (else_clause "else {\n            bVar13 = 0xff;\n          }" else (compound_statement "{\n            bVar13 = 0xff;\n          }" { (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          bVar13 = 0;\n        }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" { (expression_statement "dVar29 = (double)fVar33 / dVar26;" (assignment_expression "dVar29 = (double)fVar33 / dVar26" identifier = (binary_expression "(double)fVar33 / dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }" if (parenthesized_expression "(dVar29 < dVar25)" ( (binary_expression "dVar29 < dVar25" identifier < identifier) )) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }" { (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" if (parenthesized_expression "(dVar29 < dVar27)" ( (binary_expression "dVar29 < dVar27" identifier < identifier) )) (compound_statement "{\n              bVar13 = (byte)(int)dVar29;\n            }" { (expression_statement "bVar13 = (byte)(int)dVar29;" (assignment_expression "bVar13 = (byte)(int)dVar29" identifier = (cast_expression "(byte)(int)dVar29" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(int)dVar29" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" else (compound_statement "{\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" { (expression_statement "bVar13 = (byte)(int)(dVar29 - dVar27);" (assignment_expression "bVar13 = (byte)(int)(dVar29 - dVar27)" identifier = (call_expression "(byte)(int)(dVar29 - dVar27)" (call_expression "(byte)(int)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar29 - dVar27)" ( (binary_expression "dVar29 - dVar27" identifier - identifier) )))) ;) }))) }) (else_clause "else {\n            bVar13 = 0xff;\n          }" else (compound_statement "{\n            bVar13 = 0xff;\n          }" { (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          bVar13 = 0;\n        }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" { (expression_statement "dVar29 = (double)fVar33 / dVar26;" (assignment_expression "dVar29 = (double)fVar33 / dVar26" identifier = (binary_expression "(double)fVar33 / dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }" if (parenthesized_expression "(dVar29 < dVar25)" ( (binary_expression "dVar29 < dVar25" identifier < identifier) )) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }" { (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" if (parenthesized_expression "(dVar29 < dVar27)" ( (binary_expression "dVar29 < dVar27" identifier < identifier) )) (compound_statement "{\n              bVar13 = (byte)(int)dVar29;\n            }" { (expression_statement "bVar13 = (byte)(int)dVar29;" (assignment_expression "bVar13 = (byte)(int)dVar29" identifier = (cast_expression "(byte)(int)dVar29" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(int)dVar29" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" else (compound_statement "{\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" { (expression_statement "bVar13 = (byte)(int)(dVar29 - dVar27);" (assignment_expression "bVar13 = (byte)(int)(dVar29 - dVar27)" identifier = (call_expression "(byte)(int)(dVar29 - dVar27)" (call_expression "(byte)(int)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar29 - dVar27)" ( (binary_expression "dVar29 - dVar27" identifier - identifier) )))) ;) }))) }) (else_clause "else {\n            bVar13 = 0xff;\n          }" else (compound_statement "{\n            bVar13 = 0xff;\n          }" { (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "param_6[2] = bVar13;" (assignment_expression "param_6[2] = bVar13" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)" ( (comma_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier = (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) , (binary_expression "fVar33 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n          bVar13 = 0;\n        }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" { (expression_statement "dVar29 = (double)fVar33 / dVar26;" (assignment_expression "dVar29 = (double)fVar33 / dVar26" identifier = (binary_expression "(double)fVar33 / dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) / identifier)) ;) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }" if (parenthesized_expression "(dVar29 < dVar25)" ( (binary_expression "dVar29 < dVar25" identifier < identifier) )) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }" { (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }" if (parenthesized_expression "(dVar29 < *(double *)(puVar2 + 0x1410))" ( (binary_expression "dVar29 < *(double *)(puVar2 + 0x1410)" identifier < (pointer_expression "*(double *)(puVar2 + 0x1410)" * (cast_expression "(double *)(puVar2 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1410)" ( (binary_expression "puVar2 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n              bVar13 = (byte)(int)dVar29;\n            }" { (expression_statement "bVar13 = (byte)(int)dVar29;" (assignment_expression "bVar13 = (byte)(int)dVar29" identifier = (cast_expression "(byte)(int)dVar29" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(int)dVar29" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }" else (compound_statement "{\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }" { (expression_statement "bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));" (assignment_expression "bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410))" identifier = (call_expression "(byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410))" (call_expression "(byte)(int)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(dVar29 - *(double *)(puVar2 + 0x1410))" ( (binary_expression "dVar29 - *(double *)(puVar2 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar2 + 0x1410)" * (cast_expression "(double *)(puVar2 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1410)" ( (binary_expression "puVar2 + 0x1410" identifier + number_literal) ))))) )))) ;) }))) }) (else_clause "else {\n            bVar13 = 0xff;\n          }" else (compound_statement "{\n            bVar13 = 0xff;\n          }" { (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) }))) }))) (expression_statement "param_6[3] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10] + 4;" (assignment_expression "param_6 = param_6 + param_2[10] + 4" identifier = (binary_expression "param_6 + param_2[10] + 4" (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar22 != param_4)" ( (binary_expression "iVar22 != param_4" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }" if (parenthesized_expression "(uVar21 == 10)" ( (binary_expression "uVar21 == 10" identifier == number_literal) )) (compound_statement "{\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }" { (if_statement "if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }" if (parenthesized_expression "(param_2[0xc] == 0)" ( (binary_expression "param_2[0xc] == 0" (subscript_expression "param_2[0xc]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }" { (if_statement "if (param_4 < 1) {\n          return;\n        }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);" (assignment_expression "uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0)" identifier = (binary_expression "(ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x51e0)" ( (binary_expression "PTR_s_t_to_left_003a88e4 + -0x51e0" identifier + number_literal) ))))) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);" (assignment_expression "dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x7538)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x7538)" ( (binary_expression "PTR_s_courses_003a88ec + -0x7538" identifier + number_literal) ))))) ;) (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (do_statement "do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );" do (compound_statement "{\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "dVar40 = *(double *)(puVar4 + -0x7538);" (assignment_expression "dVar40 = *(double *)(puVar4 + -0x7538)" identifier = (pointer_expression "*(double *)(puVar4 + -0x7538)" * (cast_expression "(double *)(puVar4 + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x7538)" ( (binary_expression "puVar4 + -0x7538" identifier + number_literal) ))))) ;) (expression_statement "dVar42 = *(double *)(puVar2 + 0x1418);" (assignment_expression "dVar42 = *(double *)(puVar2 + 0x1418)" identifier = (pointer_expression "*(double *)(puVar2 + 0x1418)" * (cast_expression "(double *)(puVar2 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1418)" ( (binary_expression "puVar2 + 0x1418" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = *(double *)(puVar2 + 0x1a58);" (assignment_expression "dVar38 = *(double *)(puVar2 + 0x1a58)" identifier = (pointer_expression "*(double *)(puVar2 + 0x1a58)" * (cast_expression "(double *)(puVar2 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1a58)" ( (binary_expression "puVar2 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar37 = *(double *)(puVar2 + 0x1a60);" (assignment_expression "dVar37 = *(double *)(puVar2 + 0x1a60)" identifier = (pointer_expression "*(double *)(puVar2 + 0x1a60)" * (cast_expression "(double *)(puVar2 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1a60)" ( (binary_expression "puVar2 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(puVar2 + 0x1400);" (assignment_expression "dVar41 = *(double *)(puVar2 + 0x1400)" identifier = (pointer_expression "*(double *)(puVar2 + 0x1400)" * (cast_expression "(double *)(puVar2 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1400)" ( (binary_expression "puVar2 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar39 = dVar42;" (assignment_expression "dVar39 = dVar42" identifier = identifier) ;) (do_statement "do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);" do (compound_statement "{\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          }" { (expression_statement "iVar7 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }" if (parenthesized_expression "(iVar24 == 2)" ( (binary_expression "iVar24 == 2" identifier == number_literal) )) (compound_statement "{\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar7 + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(iVar7 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar7 + 0x20) * 4" (pointer_expression "*(int *)(iVar7 + 0x20)" * (cast_expression "(int *)(iVar7 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20)" ( (binary_expression "iVar7 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }" if (parenthesized_expression "(fVar33 < (float)uVar34)" ( (binary_expression "fVar33 < (float)uVar34" identifier < (cast_expression "(float)uVar34" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar8 = (uint)fVar33;\n              }" { (expression_statement "uVar8 = (uint)fVar33;" (assignment_expression "uVar8 = (uint)fVar33" identifier = (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }" else (compound_statement "{\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }" { (expression_statement "uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;" (assignment_expression "uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000" identifier = (binary_expression "(int)(fVar33 - (float)uVar34) | 0x80000000" (cast_expression "(int)(fVar33 - (float)uVar34)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar33 - (float)uVar34)" ( (binary_expression "fVar33 - (float)uVar34" identifier - (cast_expression "(float)uVar34" ( (type_descriptor "float" primitive_type) ) identifier)) ))) | number_literal)) ;) }))) (expression_statement "dVar30 = (double)(int)uVar8;" (assignment_expression "dVar30 = (double)(int)uVar8" identifier = (cast_expression "(double)(int)uVar8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                dVar30 = dVar30 + dVar25;\n              }" { (expression_statement "dVar30 = dVar30 + dVar25;" (assignment_expression "dVar30 = dVar30 + dVar25" identifier = (binary_expression "dVar30 + dVar25" identifier + identifier)) ;) })) (labeled_statement "LAB_00164eec:\n              fVar33 = (float)dVar30;" statement_identifier : (expression_statement "fVar33 = (float)dVar30;" (assignment_expression "fVar33 = (float)dVar30" identifier = (cast_expression "(float)dVar30" ( (type_descriptor "float" primitive_type) ) identifier)) ;)) }) (else_clause "else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }" else (compound_statement "{\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }" { (if_statement "if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }" if (parenthesized_expression "(iVar24 != 3)" ( (binary_expression "iVar24 != 3" identifier != number_literal) )) (compound_statement "{\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }" { (expression_statement "fVar33 = *(float *)(puVar3 + -0x51e0);" (assignment_expression "fVar33 = *(float *)(puVar3 + -0x51e0)" identifier = (pointer_expression "*(float *)(puVar3 + -0x51e0)" * (cast_expression "(float *)(puVar3 + -0x51e0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x51e0)" ( (binary_expression "puVar3 + -0x51e0" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }" if (parenthesized_expression "(iVar24 == 1)" ( (binary_expression "iVar24 == 1" identifier == number_literal) )) (compound_statement "{\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }" { (expression_statement "fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);" (assignment_expression "fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar7 + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(iVar7 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar7 + 0x14) * 4" (pointer_expression "*(int *)(iVar7 + 0x14)" * (cast_expression "(int *)(iVar7 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" if (parenthesized_expression "(fVar32 < fVar33)" ( (binary_expression "fVar32 < fVar33" identifier < identifier) )) (compound_statement "{\n                    uVar8 = (uint)fVar32;\n                  }" { (expression_statement "uVar8 = (uint)fVar32;" (assignment_expression "uVar8 = (uint)fVar32" identifier = (cast_expression "(uint)fVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" else (compound_statement "{\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" { (expression_statement "uVar8 = (int)(fVar32 - fVar33) | 0x80000000;" (assignment_expression "uVar8 = (int)(fVar32 - fVar33) | 0x80000000" identifier = (binary_expression "(int)(fVar32 - fVar33) | 0x80000000" (cast_expression "(int)(fVar32 - fVar33)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar32 - fVar33)" ( (binary_expression "fVar32 - fVar33" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "dVar30 = (double)(int)uVar8;" (assignment_expression "dVar30 = (double)(int)uVar8" identifier = (cast_expression "(double)(int)uVar8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    dVar30 = dVar30 + dVar42;\n                  }" { (expression_statement "dVar30 = dVar30 + dVar42;" (assignment_expression "dVar30 = dVar30 + dVar42" identifier = (binary_expression "dVar30 + dVar42" identifier + identifier)) ;) })) }) (else_clause "else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }" else (compound_statement "{\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }" { (expression_statement "fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);" (assignment_expression "fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar7 + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar7 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar7 + 8) * 4)" ( (binary_expression "param_5 + *(int *)(iVar7 + 8) * 4" identifier + (binary_expression "*(int *)(iVar7 + 8) * 4" (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" if (parenthesized_expression "(fVar32 < fVar33)" ( (binary_expression "fVar32 < fVar33" identifier < identifier) )) (compound_statement "{\n                    uVar8 = (uint)fVar32;\n                  }" { (expression_statement "uVar8 = (uint)fVar32;" (assignment_expression "uVar8 = (uint)fVar32" identifier = (cast_expression "(uint)fVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" else (compound_statement "{\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" { (expression_statement "uVar8 = (int)(fVar32 - fVar33) | 0x80000000;" (assignment_expression "uVar8 = (int)(fVar32 - fVar33) | 0x80000000" identifier = (binary_expression "(int)(fVar32 - fVar33) | 0x80000000" (cast_expression "(int)(fVar32 - fVar33)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar32 - fVar33)" ( (binary_expression "fVar32 - fVar33" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "dVar30 = (double)(int)uVar8;" (assignment_expression "dVar30 = (double)(int)uVar8" identifier = (cast_expression "(double)(int)uVar8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    dVar30 = dVar30 + dVar42;\n                  }" { (expression_statement "dVar30 = dVar30 + dVar42;" (assignment_expression "dVar30 = dVar30 + dVar42" identifier = (binary_expression "dVar30 + dVar42" identifier + identifier)) ;) })) }))) (goto_statement "goto LAB_00164eec;" goto statement_identifier ;) })) (expression_statement "fVar33 = 0.0;" (assignment_expression "fVar33 = 0.0" identifier = number_literal) ;) (if_statement "if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }" if (parenthesized_expression "(*(int *)(iVar7 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar7 + 0x34) == 4" (pointer_expression "*(int *)(iVar7 + 0x34)" * (cast_expression "(int *)(iVar7 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }" { (expression_statement "fVar32 = *(float *)(puVar3 + -0x51e0);" (assignment_expression "fVar32 = *(float *)(puVar3 + -0x51e0)" identifier = (pointer_expression "*(float *)(puVar3 + -0x51e0)" * (cast_expression "(float *)(puVar3 + -0x51e0)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x51e0)" ( (binary_expression "puVar3 + -0x51e0" identifier + number_literal) ))))) ;) (expression_statement "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4)" identifier = (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar7 + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(iVar7 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar7 + 0x38) * 4" (pointer_expression "*(int *)(iVar7 + 0x38)" * (cast_expression "(int *)(iVar7 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x38)" ( (binary_expression "iVar7 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;) (if_statement "if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }" if (parenthesized_expression "(fVar33 < fVar32)" ( (binary_expression "fVar33 < fVar32" identifier < identifier) )) (compound_statement "{\n                  uVar8 = (uint)fVar33;\n                }" { (expression_statement "uVar8 = (uint)fVar33;" (assignment_expression "uVar8 = (uint)fVar33" identifier = (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }" else (compound_statement "{\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }" { (expression_statement "uVar8 = (int)(fVar33 - fVar32) | 0x80000000;" (assignment_expression "uVar8 = (int)(fVar33 - fVar32) | 0x80000000" identifier = (binary_expression "(int)(fVar33 - fVar32) | 0x80000000" (cast_expression "(int)(fVar33 - fVar32)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar33 - fVar32)" ( (binary_expression "fVar33 - fVar32" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "dVar30 = (double)(int)uVar8;" (assignment_expression "dVar30 = (double)(int)uVar8" identifier = (cast_expression "(double)(int)uVar8" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  dVar30 = dVar30 + dVar39;\n                }" { (expression_statement "dVar30 = dVar30 + dVar39;" (assignment_expression "dVar30 = dVar30 + dVar39" identifier = (binary_expression "dVar30 + dVar39" identifier + identifier)) ;) })) (goto_statement "goto LAB_00164eec;" goto statement_identifier ;) })) }))) (expression_statement "uVar8 = (uint)(iVar24 + iVar22) % 3;" (assignment_expression "uVar8 = (uint)(iVar24 + iVar22) % 3" identifier = (binary_expression "(uint)(iVar24 + iVar22) % 3" (call_expression "(uint)(iVar24 + iVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar24 + iVar22)" ( (binary_expression "iVar24 + iVar22" identifier + identifier) ))) % number_literal)) ;) (if_statement "if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" if (parenthesized_expression "(uVar8 == 1)" ( (binary_expression "uVar8 == 1" identifier == number_literal) )) (compound_statement "{\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }" { (if_statement "if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }" if (parenthesized_expression "(0.0 < fVar33)" ( (binary_expression "0.0 < fVar33" number_literal < identifier) )) (compound_statement "{\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }" { (expression_statement "dVar30 = ((double)fVar33 * dVar26) / dVar27;" (assignment_expression "dVar30 = ((double)fVar33 * dVar26) / dVar27" identifier = (binary_expression "((double)fVar33 * dVar26) / dVar27" (parenthesized_expression "((double)fVar33 * dVar26)" ( (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }" if (parenthesized_expression "(dVar30 < dVar28)" ( (binary_expression "dVar30 < dVar28" identifier < identifier) )) (compound_statement "{\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar30 + dVar29)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar30 + dVar29)" ( (binary_expression "dVar30 + dVar29" identifier + identifier) ))) ;) (expression_statement "uVar21 = uVar21 | extraout_v1_01 << 0xc;" (assignment_expression "uVar21 = uVar21 | extraout_v1_01 << 0xc" identifier = (binary_expression "uVar21 | extraout_v1_01 << 0xc" identifier | (binary_expression "extraout_v1_01 << 0xc" identifier << number_literal))) ;) }) (else_clause "else {\n                  uVar21 = 0xfffff000;\n                }" else (compound_statement "{\n                  uVar21 = 0xfffff000;\n                }" { (expression_statement "uVar21 = 0xfffff000;" (assignment_expression "uVar21 = 0xfffff000" identifier = number_literal) ;) }))) })) }) (else_clause "else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" else (if_statement "if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" if (parenthesized_expression "(uVar8 == 2)" ( (binary_expression "uVar8 == 2" identifier == number_literal) )) (compound_statement "{\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }" { (if_statement "if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }" if (parenthesized_expression "(0.0 < fVar33)" ( (binary_expression "0.0 < fVar33" number_literal < identifier) )) (compound_statement "{\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }" { (expression_statement "dVar30 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar30 = ((double)fVar33 * dVar40) / dVar38" identifier = (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" ( (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }" if (parenthesized_expression "(dVar30 < dVar37)" ( (binary_expression "dVar30 < dVar37" identifier < identifier) )) (compound_statement "{\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar30 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar30 + dVar41)" ( (binary_expression "dVar30 + dVar41" identifier + identifier) ))) ;) (expression_statement "uVar21 = uVar21 | extraout_v1 << 2;" (assignment_expression "uVar21 = uVar21 | extraout_v1 << 2" identifier = (binary_expression "uVar21 | extraout_v1 << 2" identifier | (binary_expression "extraout_v1 << 2" identifier << number_literal))) ;) }) (else_clause "else {\n                  uVar21 = 0xfffffffc;\n                }" else (compound_statement "{\n                  uVar21 = 0xfffffffc;\n                }" { (expression_statement "uVar21 = 0xfffffffc;" (assignment_expression "uVar21 = 0xfffffffc" identifier = number_literal) ;) }))) })) (expression_statement "bVar13 = (byte)uVar21;" (assignment_expression "bVar13 = (byte)uVar21" identifier = (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar17 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar17 = (byte)(uVar21 >> 0x18)" identifier = (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x18)" ( (binary_expression "uVar21 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar14 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar14 = (byte)(uVar21 >> 0x10)" identifier = (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x10)" ( (binary_expression "uVar21 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" identifier = (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 8)" ( (binary_expression "uVar21 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }" { (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (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[2] = bVar14;" (assignment_expression "param_6[2] = bVar14" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = bVar17;" (assignment_expression "param_6[3] = bVar17" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6 = param_6 + 4;" (assignment_expression "param_6 = param_6 + 4" identifier = (binary_expression "param_6 + 4" identifier + number_literal)) ;) }) (else_clause "else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }" else (compound_statement "{\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "*param_6 = bVar17;" (assignment_expression "*param_6 = bVar17" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = bVar14;" (assignment_expression "param_6[1] = bVar14" (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] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6 = param_6 + 4;" (assignment_expression "param_6 = param_6 + 4" identifier = (binary_expression "param_6 + 4" identifier + number_literal)) ;) }))) }) (else_clause "else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" else (if_statement "if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" if (parenthesized_expression "(0.0 < fVar33)" ( (binary_expression "0.0 < fVar33" number_literal < identifier) )) (compound_statement "{\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" { (expression_statement "dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);" (assignment_expression "dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58)" identifier = (binary_expression "((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58)" (parenthesized_expression "((double)fVar33 * *(double *)(puVar4 + -0x7538))" ( (binary_expression "(double)fVar33 * *(double *)(puVar4 + -0x7538)" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * (pointer_expression "*(double *)(puVar4 + -0x7538)" * (cast_expression "(double *)(puVar4 + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x7538)" ( (binary_expression "puVar4 + -0x7538" identifier + number_literal) ))))) )) / (pointer_expression "*(double *)(puVar2 + 0x1a58)" * (cast_expression "(double *)(puVar2 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1a58)" ( (binary_expression "puVar2 + 0x1a58" identifier + number_literal) )))))) ;) (if_statement "if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }" if (parenthesized_expression "(dVar30 < *(double *)(puVar2 + 0x1a60))" ( (binary_expression "dVar30 < *(double *)(puVar2 + 0x1a60)" identifier < (pointer_expression "*(double *)(puVar2 + 0x1a60)" * (cast_expression "(double *)(puVar2 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1a60)" ( (binary_expression "puVar2 + 0x1a60" identifier + number_literal) ))))) )) (compound_statement "{\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400))" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar30 + *(double *)(puVar2 + 0x1400))" ( (binary_expression "dVar30 + *(double *)(puVar2 + 0x1400)" identifier + (pointer_expression "*(double *)(puVar2 + 0x1400)" * (cast_expression "(double *)(puVar2 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1400)" ( (binary_expression "puVar2 + 0x1400" identifier + number_literal) ))))) ))) ;) (expression_statement "uVar21 = uVar21 | extraout_v1_00 << 0x16;" (assignment_expression "uVar21 = uVar21 | extraout_v1_00 << 0x16" identifier = (binary_expression "uVar21 | extraout_v1_00 << 0x16" identifier | (binary_expression "extraout_v1_00 << 0x16" identifier << number_literal))) ;) }) (else_clause "else {\n                uVar21 = uVar21 | 0xffc00000;\n              }" else (compound_statement "{\n                uVar21 = uVar21 | 0xffc00000;\n              }" { (expression_statement "uVar21 = uVar21 | 0xffc00000;" (assignment_expression "uVar21 = uVar21 | 0xffc00000" identifier = (binary_expression "uVar21 | 0xffc00000" identifier | number_literal)) ;) }))) })))))) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != 4)" ( (binary_expression "iVar24 != 4" identifier != number_literal) )) ;) (expression_statement "iVar22 = iVar22 + 4;" (assignment_expression "iVar22 = iVar22 + 4" identifier = (binary_expression "iVar22 + 4" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_6 = param_6 + param_2[10];" (assignment_expression "param_6 = param_6 + param_2[10]" identifier = (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ]))) ;) (if_statement "if (iVar22 == param_4 << 2) {\n            return;\n          }" if (parenthesized_expression "(iVar22 == param_4 << 2)" ( (binary_expression "iVar22 == param_4 << 2" identifier == (binary_expression "param_4 << 2" identifier << number_literal)) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }" if (parenthesized_expression "(param_2[1] == 0x20)" ( (binary_expression "param_2[1] == 0x20" (subscript_expression "param_2[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }" { (if_statement "if (param_4 < 1) {\n          return;\n        }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);" (assignment_expression "dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x7538)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x7538)" ( (binary_expression "PTR_s_courses_003a88ec + -0x7538" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = 10;" (assignment_expression "uVar21 = 10" identifier = number_literal) ;) (expression_statement "dVar25 = dVar37;" (assignment_expression "dVar25 = dVar37" identifier = identifier) ;) (expression_statement "dVar26 = dVar38;" (assignment_expression "dVar26 = dVar38" identifier = identifier) ;) (expression_statement "dVar27 = dVar40;" (assignment_expression "dVar27 = dVar40" identifier = identifier) ;) (expression_statement "dVar28 = dVar41;" (assignment_expression "dVar28 = dVar41" identifier = identifier) ;) (expression_statement "dVar29 = dVar40;" (assignment_expression "dVar29 = dVar40" identifier = identifier) ;) (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" identifier = identifier) ;) (while_statement "while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }" { (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 8) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 8) * 4" identifier + (binary_expression "*(int *)(iVar24 + 8) * 4" (pointer_expression "*(int *)(iVar24 + 8)" * (cast_expression "(int *)(iVar24 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }" if (parenthesized_expression "(NAN(fVar33))" ( (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier ))) )) (compound_statement "{\n            uVar8 = 0;\n          }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }" else (compound_statement "{\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }" if (parenthesized_expression "(0.0 < fVar33)" ( (binary_expression "0.0 < fVar33" number_literal < identifier) )) (compound_statement "{\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }" { (expression_statement "dVar42 = ((double)fVar33 * dVar27) / dVar26;" (assignment_expression "dVar42 = ((double)fVar33 * dVar27) / dVar26" identifier = (binary_expression "((double)fVar33 * dVar27) / dVar26" (parenthesized_expression "((double)fVar33 * dVar27)" ( (binary_expression "(double)fVar33 * dVar27" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }" if (parenthesized_expression "(dVar42 < dVar25)" ( (binary_expression "dVar42 < dVar25" identifier < identifier) )) (compound_statement "{\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar28)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + dVar28)" ( (binary_expression "dVar42 + dVar28" identifier + identifier) ))) ;) (expression_statement "uVar8 = extraout_v1_06;" (assignment_expression "uVar8 = extraout_v1_06" identifier = identifier) ;) }) (else_clause "else {\n                uVar8 = 0xffffffff;\n              }" else (compound_statement "{\n                uVar8 = 0xffffffff;\n              }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }))) })) }))) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) (if_statement "if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }" { (expression_statement "uVar23 = 0x20;" (assignment_expression "uVar23 = 0x20" identifier = number_literal) ;) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" { (expression_statement "bVar1 = uVar23 < uVar21;" (assignment_expression "bVar1 = uVar23 < uVar21" identifier = (binary_expression "uVar23 < uVar21" identifier < identifier)) ;) (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" identifier = identifier) ;) (do_statement "do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);" do (compound_statement "{\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            }" { (expression_statement "uVar15 = uVar23;" (assignment_expression "uVar15 = uVar23" identifier = identifier) ;) (if_statement "if (!bVar1) {\n                uVar15 = uVar9;\n              }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n                uVar15 = uVar9;\n              }" { (expression_statement "uVar15 = uVar9;" (assignment_expression "uVar15 = uVar9" identifier = identifier) ;) })) (expression_statement "uVar16 = uVar21 - uVar9;" (assignment_expression "uVar16 = uVar21 - uVar9" identifier = (binary_expression "uVar21 - uVar9" identifier - identifier)) ;) (expression_statement "uVar10 = 0x20 - uVar23;" (assignment_expression "uVar10 = 0x20 - uVar23" identifier = (binary_expression "0x20 - uVar23" number_literal - identifier)) ;) (expression_statement "uVar23 = uVar23 - uVar15;" (assignment_expression "uVar23 = uVar23 - uVar15" identifier = (binary_expression "uVar23 - uVar15" identifier - identifier)) ;) (expression_statement "uVar9 = uVar9 - uVar15;" (assignment_expression "uVar9 = uVar9 - uVar15" identifier = (binary_expression "uVar9 - uVar15" identifier - identifier)) ;) (expression_statement "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);" (assignment_expression "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4)" identifier = (pointer_expression "*(uint *)(param_2[0x16] + uVar15 * 4)" * (cast_expression "(uint *)(param_2[0x16] + uVar15 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0x16] + uVar15 * 4)" ( (binary_expression "param_2[0x16] + uVar15 * 4" (subscript_expression "param_2[0x16]" identifier [ number_literal ]) + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];" (assignment_expression "uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" identifier = (binary_expression "(uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" (binary_expression "(uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f)" (parenthesized_expression "(uVar8 >> (uVar16 & 0x1f) & uVar15)" ( (binary_expression "uVar8 >> (uVar16 & 0x1f) & uVar15" (binary_expression "uVar8 >> (uVar16 & 0x1f)" identifier >> (parenthesized_expression "(uVar16 & 0x1f)" ( (binary_expression "uVar16 & 0x1f" identifier & number_literal) ))) & identifier) )) << (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) | (subscript_expression "param_2[0x14]" identifier [ number_literal ]))) ;) (expression_statement "param_2[0x14] = uVar15;" (assignment_expression "param_2[0x14] = uVar15" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" identifier = identifier) ;) (if_statement "if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" { (expression_statement "param_6 = pbVar11 + 4;" (assignment_expression "param_6 = pbVar11 + 4" identifier = (binary_expression "pbVar11 + 4" identifier + number_literal)) ;) (expression_statement "bVar14 = (byte)(uVar15 >> 0x18);" (assignment_expression "bVar14 = (byte)(uVar15 >> 0x18)" identifier = (call_expression "(byte)(uVar15 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar15 >> 0x18)" ( (binary_expression "uVar15 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar15 >> 0x10);" (assignment_expression "bVar12 = (byte)(uVar15 >> 0x10)" identifier = (call_expression "(byte)(uVar15 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar15 >> 0x10)" ( (binary_expression "uVar15 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar15 >> 8);" (assignment_expression "bVar13 = (byte)(uVar15 >> 8)" identifier = (call_expression "(byte)(uVar15 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar15 >> 8)" ( (binary_expression "uVar15 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }" { (expression_statement "*pbVar11 = (byte)uVar15;" (assignment_expression "*pbVar11 = (byte)uVar15" (pointer_expression "*pbVar11" * identifier) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar11[1] = bVar13;" (assignment_expression "pbVar11[1] = bVar13" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[2] = bVar12;" (assignment_expression "pbVar11[2] = bVar12" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[3] = bVar14;" (assignment_expression "pbVar11[3] = bVar14" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }" else (compound_statement "{\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }" { (expression_statement "*pbVar11 = bVar14;" (assignment_expression "*pbVar11 = bVar14" (pointer_expression "*pbVar11" * identifier) = identifier) ;) (expression_statement "pbVar11[1] = bVar12;" (assignment_expression "pbVar11[1] = bVar12" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[2] = bVar13;" (assignment_expression "pbVar11[2] = bVar13" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[3] = (byte)uVar15;" (assignment_expression "pbVar11[3] = (byte)uVar15" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar23 = 0x20;" (assignment_expression "uVar23 = 0x20" identifier = number_literal) ;) (expression_statement "param_2[0x14] = 0;" (assignment_expression "param_2[0x14] = 0" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "bVar1 = uVar23 < uVar9;" (assignment_expression "bVar1 = uVar23 < uVar9" identifier = (binary_expression "uVar23 < uVar9" identifier < identifier)) ;) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)uVar9)" ( (binary_expression "0 < (int)uVar9" number_literal < (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) })) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n            uVar8 = 0;\n          }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" else (compound_statement "{\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" { (expression_statement "dVar42 = ((double)fVar33 * dVar29) / dVar39;" (assignment_expression "dVar42 = ((double)fVar33 * dVar29) / dVar39" identifier = (binary_expression "((double)fVar33 * dVar29) / dVar39" (parenthesized_expression "((double)fVar33 * dVar29)" ( (binary_expression "(double)fVar33 * dVar29" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + dVar41)" ( (binary_expression "dVar42 + dVar41" identifier + identifier) ))) ;) (expression_statement "uVar8 = extraout_v1_07;" (assignment_expression "uVar8 = extraout_v1_07" identifier = identifier) ;) }) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }))) }))) (expression_statement "bVar1 = uVar23 < uVar21;" (assignment_expression "bVar1 = uVar23 < uVar21" identifier = (binary_expression "uVar23 < uVar21" identifier < identifier)) ;) (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" identifier = identifier) ;) (if_statement "if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" { (do_statement "do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);" do (compound_statement "{\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            }" { (expression_statement "uVar15 = uVar23;" (assignment_expression "uVar15 = uVar23" identifier = identifier) ;) (if_statement "if (!bVar1) {\n                uVar15 = uVar9;\n              }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n                uVar15 = uVar9;\n              }" { (expression_statement "uVar15 = uVar9;" (assignment_expression "uVar15 = uVar9" identifier = identifier) ;) })) (expression_statement "uVar10 = 0x20 - uVar23;" (assignment_expression "uVar10 = 0x20 - uVar23" identifier = (binary_expression "0x20 - uVar23" number_literal - identifier)) ;) (expression_statement "uVar23 = uVar23 - uVar15;" (assignment_expression "uVar23 = uVar23 - uVar15" identifier = (binary_expression "uVar23 - uVar15" identifier - identifier)) ;) (expression_statement "uVar16 = uVar9 - uVar15;" (assignment_expression "uVar16 = uVar9 - uVar15" identifier = (binary_expression "uVar9 - uVar15" identifier - identifier)) ;) (expression_statement "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);" (assignment_expression "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4)" identifier = (pointer_expression "*(uint *)(param_2[0x16] + uVar15 * 4)" * (cast_expression "(uint *)(param_2[0x16] + uVar15 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0x16] + uVar15 * 4)" ( (binary_expression "param_2[0x16] + uVar15 * 4" (subscript_expression "param_2[0x16]" identifier [ number_literal ]) + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;" (assignment_expression "uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" identifier = (binary_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" (binary_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f)" (parenthesized_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15)" ( (binary_expression "uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15" (binary_expression "uVar8 >> (uVar21 - uVar9 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 - uVar9 & 0x1f)" ( (binary_expression "uVar21 - uVar9 & 0x1f" (binary_expression "uVar21 - uVar9" identifier - identifier) & number_literal) ))) & identifier) )) << (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) | (subscript_expression "param_2[0x14]" 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 "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" identifier = identifier) ;) (if_statement "if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" { (expression_statement "pbVar11 = param_6 + 4;" (assignment_expression "pbVar11 = param_6 + 4" identifier = (binary_expression "param_6 + 4" identifier + number_literal)) ;) (expression_statement "bVar14 = (byte)(uVar9 >> 0x18);" (assignment_expression "bVar14 = (byte)(uVar9 >> 0x18)" identifier = (call_expression "(byte)(uVar9 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar9 >> 0x18)" ( (binary_expression "uVar9 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar9 >> 0x10);" (assignment_expression "bVar12 = (byte)(uVar9 >> 0x10)" identifier = (call_expression "(byte)(uVar9 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar9 >> 0x10)" ( (binary_expression "uVar9 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar9 >> 8);" (assignment_expression "bVar13 = (byte)(uVar9 >> 8)" identifier = (call_expression "(byte)(uVar9 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar9 >> 8)" ( (binary_expression "uVar9 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }" { (expression_statement "*param_6 = (byte)uVar9;" (assignment_expression "*param_6 = (byte)uVar9" (pointer_expression "*param_6" * identifier) = (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (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] = bVar14;" (assignment_expression "param_6[3] = bVar14" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }" else (compound_statement "{\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }" { (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 "param_6[2] = bVar13;" (assignment_expression "param_6[2] = bVar13" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = (byte)uVar9;" (assignment_expression "param_6[3] = (byte)uVar9" (subscript_expression "param_6[3]" identifier [ number_literal ]) = (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar23 = 0x20;" (assignment_expression "uVar23 = 0x20" identifier = number_literal) ;) (expression_statement "param_2[0x14] = 0;" (assignment_expression "param_2[0x14] = 0" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "bVar1 = uVar23 < uVar16;" (assignment_expression "bVar1 = uVar23 < uVar16" identifier = (binary_expression "uVar23 < uVar16" identifier < identifier)) ;) (expression_statement "uVar9 = uVar16;" (assignment_expression "uVar9 = uVar16" identifier = identifier) ;) (expression_statement "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) })) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n            uVar8 = 0;\n          }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" else (compound_statement "{\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" { (expression_statement "dVar42 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar42 = ((double)fVar33 * dVar40) / dVar38" identifier = (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" ( (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + dVar41)" ( (binary_expression "dVar42 + dVar41" identifier + identifier) ))) ;) (expression_statement "uVar8 = extraout_v1_08;" (assignment_expression "uVar8 = extraout_v1_08" identifier = identifier) ;) }) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }))) }))) (expression_statement "bVar1 = uVar23 < uVar21;" (assignment_expression "bVar1 = uVar23 < uVar21" identifier = (binary_expression "uVar23 < uVar21" identifier < identifier)) ;) (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) (expression_statement "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" identifier = identifier) ;) (if_statement "if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" { (do_statement "do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);" do (compound_statement "{\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            }" { (expression_statement "uVar15 = uVar23;" (assignment_expression "uVar15 = uVar23" identifier = identifier) ;) (if_statement "if (!bVar1) {\n                uVar15 = uVar9;\n              }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n                uVar15 = uVar9;\n              }" { (expression_statement "uVar15 = uVar9;" (assignment_expression "uVar15 = uVar9" identifier = identifier) ;) })) (expression_statement "uVar10 = 0x20 - uVar23;" (assignment_expression "uVar10 = 0x20 - uVar23" identifier = (binary_expression "0x20 - uVar23" number_literal - identifier)) ;) (expression_statement "uVar23 = uVar23 - uVar15;" (assignment_expression "uVar23 = uVar23 - uVar15" identifier = (binary_expression "uVar23 - uVar15" identifier - identifier)) ;) (expression_statement "uVar16 = uVar9 - uVar15;" (assignment_expression "uVar16 = uVar9 - uVar15" identifier = (binary_expression "uVar9 - uVar15" identifier - identifier)) ;) (expression_statement "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);" (assignment_expression "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4)" identifier = (pointer_expression "*(uint *)(param_2[0x16] + uVar15 * 4)" * (cast_expression "(uint *)(param_2[0x16] + uVar15 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0x16] + uVar15 * 4)" ( (binary_expression "param_2[0x16] + uVar15 * 4" (subscript_expression "param_2[0x16]" identifier [ number_literal ]) + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;" (assignment_expression "uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" identifier = (binary_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" (binary_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f)" (parenthesized_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15)" ( (binary_expression "uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15" (binary_expression "uVar8 >> (uVar21 - uVar9 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 - uVar9 & 0x1f)" ( (binary_expression "uVar21 - uVar9 & 0x1f" (binary_expression "uVar21 - uVar9" identifier - identifier) & number_literal) ))) & identifier) )) << (parenthesized_expression "(uVar10 & 0x1f)" ( (binary_expression "uVar10 & 0x1f" identifier & number_literal) ))) | (subscript_expression "param_2[0x14]" 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 "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" identifier = identifier) ;) (if_statement "if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" { (expression_statement "param_6 = pbVar11 + 4;" (assignment_expression "param_6 = pbVar11 + 4" identifier = (binary_expression "pbVar11 + 4" identifier + number_literal)) ;) (expression_statement "bVar14 = (byte)(uVar9 >> 0x18);" (assignment_expression "bVar14 = (byte)(uVar9 >> 0x18)" identifier = (call_expression "(byte)(uVar9 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar9 >> 0x18)" ( (binary_expression "uVar9 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar9 >> 0x10);" (assignment_expression "bVar12 = (byte)(uVar9 >> 0x10)" identifier = (call_expression "(byte)(uVar9 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar9 >> 0x10)" ( (binary_expression "uVar9 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar9 >> 8);" (assignment_expression "bVar13 = (byte)(uVar9 >> 8)" identifier = (call_expression "(byte)(uVar9 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar9 >> 8)" ( (binary_expression "uVar9 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }" { (expression_statement "*pbVar11 = (byte)uVar9;" (assignment_expression "*pbVar11 = (byte)uVar9" (pointer_expression "*pbVar11" * identifier) = (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar11[1] = bVar13;" (assignment_expression "pbVar11[1] = bVar13" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[2] = bVar12;" (assignment_expression "pbVar11[2] = bVar12" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[3] = bVar14;" (assignment_expression "pbVar11[3] = bVar14" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }" else (compound_statement "{\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }" { (expression_statement "*pbVar11 = bVar14;" (assignment_expression "*pbVar11 = bVar14" (pointer_expression "*pbVar11" * identifier) = identifier) ;) (expression_statement "pbVar11[1] = bVar12;" (assignment_expression "pbVar11[1] = bVar12" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[2] = bVar13;" (assignment_expression "pbVar11[2] = bVar13" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[3] = (byte)uVar9;" (assignment_expression "pbVar11[3] = (byte)uVar9" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = (cast_expression "(byte)uVar9" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar23 = 0x20;" (assignment_expression "uVar23 = 0x20" identifier = number_literal) ;) (expression_statement "param_2[0x14] = 0;" (assignment_expression "param_2[0x14] = 0" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "bVar1 = uVar23 < uVar16;" (assignment_expression "bVar1 = uVar23 < uVar16" identifier = (binary_expression "uVar23 < uVar16" identifier < identifier)) ;) (expression_statement "uVar9 = uVar16;" (assignment_expression "uVar9 = uVar16" identifier = identifier) ;) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) })) (if_statement "if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0))" ( (binary_expression "(*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)" (parenthesized_expression "(*(int *)(iVar24 + 0x34) != 4)" ( (binary_expression "*(int *)(iVar24 + 0x34) != 4" (pointer_expression "*(int *)(iVar24 + 0x34)" * (cast_expression "(int *)(iVar24 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x34)" ( (binary_expression "iVar24 + 0x34" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)" ( (comma_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" identifier = (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x38) * 4" (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) , (binary_expression "fVar33 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n            uVar8 = 0;\n          }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" else (compound_statement "{\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" { (expression_statement "dVar42 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar42 = ((double)fVar33 * dVar40) / dVar38" identifier = (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" ( (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400))" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + *(double *)(puVar2 + 0x1400))" ( (binary_expression "dVar42 + *(double *)(puVar2 + 0x1400)" identifier + (pointer_expression "*(double *)(puVar2 + 0x1400)" * (cast_expression "(double *)(puVar2 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1400)" ( (binary_expression "puVar2 + 0x1400" identifier + number_literal) ))))) ))) ;) (expression_statement "uVar8 = extraout_v1_09;" (assignment_expression "uVar8 = extraout_v1_09" identifier = identifier) ;) }) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }))) }))) (expression_statement "uVar23 = uVar21;" (assignment_expression "uVar23 = uVar21" identifier = identifier) ;) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" identifier = identifier) ;) (if_statement "if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }" { (while_statement "while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }" { (expression_statement "uVar15 = param_2[0x15];" (assignment_expression "uVar15 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = uVar15;" (assignment_expression "uVar9 = uVar15" identifier = identifier) ;) (if_statement "if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }" if (parenthesized_expression "(uVar23 <= uVar15)" ( (binary_expression "uVar23 <= uVar15" identifier <= identifier) )) (compound_statement "{\n                uVar9 = uVar23;\n              }" { (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" identifier = identifier) ;) })) (expression_statement "uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);" (assignment_expression "uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4)" identifier = (pointer_expression "*(uint *)(param_2[0x16] + uVar9 * 4)" * (cast_expression "(uint *)(param_2[0x16] + uVar9 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0x16] + uVar9 * 4)" ( (binary_expression "param_2[0x16] + uVar9 * 4" (subscript_expression "param_2[0x16]" identifier [ number_literal ]) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (expression_statement "param_2[0x15] = uVar15 - uVar9;" (assignment_expression "param_2[0x15] = uVar15 - uVar9" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = (binary_expression "uVar15 - uVar9" identifier - identifier)) ;) (expression_statement "uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];" (assignment_expression "uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14]" identifier = (binary_expression "(uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14]" (binary_expression "(uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f)" (parenthesized_expression "(uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10)" ( (binary_expression "uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10" (binary_expression "uVar8 >> (uVar21 - uVar23 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 - uVar23 & 0x1f)" ( (binary_expression "uVar21 - uVar23 & 0x1f" (binary_expression "uVar21 - uVar23" identifier - identifier) & number_literal) ))) & identifier) )) << (parenthesized_expression "(0x20 - uVar15 & 0x1f)" ( (binary_expression "0x20 - uVar15 & 0x1f" (binary_expression "0x20 - uVar15" number_literal - identifier) & number_literal) ))) | (subscript_expression "param_2[0x14]" identifier [ number_literal ]))) ;) (expression_statement "param_2[0x14] = uVar21;" (assignment_expression "param_2[0x14] = uVar21" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" identifier = identifier) ;) (if_statement "if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" if (parenthesized_expression "(uVar15 - uVar9 == 0)" ( (binary_expression "uVar15 - uVar9 == 0" (binary_expression "uVar15 - uVar9" identifier - identifier) == number_literal) )) (compound_statement "{\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" { (expression_statement "param_6 = pbVar11 + 4;" (assignment_expression "param_6 = pbVar11 + 4" identifier = (binary_expression "pbVar11 + 4" identifier + number_literal)) ;) (expression_statement "bVar14 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar14 = (byte)(uVar21 >> 0x18)" identifier = (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x18)" ( (binary_expression "uVar21 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar12 = (byte)(uVar21 >> 0x10)" identifier = (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x10)" ( (binary_expression "uVar21 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar21 >> 8);" (assignment_expression "bVar13 = (byte)(uVar21 >> 8)" identifier = (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 8)" ( (binary_expression "uVar21 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }" { (expression_statement "*pbVar11 = (byte)uVar21;" (assignment_expression "*pbVar11 = (byte)uVar21" (pointer_expression "*pbVar11" * identifier) = (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar11[1] = bVar13;" (assignment_expression "pbVar11[1] = bVar13" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[2] = bVar12;" (assignment_expression "pbVar11[2] = bVar12" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[3] = bVar14;" (assignment_expression "pbVar11[3] = bVar14" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }" else (compound_statement "{\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }" { (expression_statement "*pbVar11 = bVar14;" (assignment_expression "*pbVar11 = bVar14" (pointer_expression "*pbVar11" * identifier) = identifier) ;) (expression_statement "pbVar11[1] = bVar12;" (assignment_expression "pbVar11[1] = bVar12" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[2] = bVar13;" (assignment_expression "pbVar11[2] = bVar13" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar11[3] = (byte)uVar21;" (assignment_expression "pbVar11[3] = (byte)uVar21" (subscript_expression "pbVar11[3]" identifier [ number_literal ]) = (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "param_2[0x14] = 0;" (assignment_expression "param_2[0x14] = 0" (subscript_expression "param_2[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if ((int)(uVar23 - uVar9) < 1) break;" if (parenthesized_expression "((int)(uVar23 - uVar9) < 1)" ( (binary_expression "(int)(uVar23 - uVar9) < 1" (cast_expression "(int)(uVar23 - uVar9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar23 - uVar9)" ( (binary_expression "uVar23 - uVar9" identifier - identifier) ))) < number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" identifier = (binary_expression "uVar23 - uVar9" identifier - identifier)) ;) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" identifier = identifier) ;) })) })) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10];" (assignment_expression "param_6 = param_6 + param_2[10]" identifier = (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ]))) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iVar22 == param_4) break;" if (parenthesized_expression "(iVar22 == param_4)" ( (binary_expression "iVar22 == param_4" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (return_statement "return;" return ;) })) (if_statement "if (param_4 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);" (assignment_expression "dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538)" identifier = (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x7538)" * (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x7538)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_courses_003a88ec + -0x7538)" ( (binary_expression "PTR_s_courses_003a88ec + -0x7538" identifier + number_literal) ))))) ;) (expression_statement "dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = 10;" (assignment_expression "uVar21 = 10" identifier = number_literal) ;) (expression_statement "dVar25 = dVar37;" (assignment_expression "dVar25 = dVar37" identifier = identifier) ;) (expression_statement "dVar26 = dVar38;" (assignment_expression "dVar26 = dVar38" identifier = identifier) ;) (expression_statement "dVar27 = dVar40;" (assignment_expression "dVar27 = dVar40" identifier = identifier) ;) (expression_statement "dVar28 = dVar41;" (assignment_expression "dVar28 = dVar41" identifier = identifier) ;) (expression_statement "dVar29 = dVar40;" (assignment_expression "dVar29 = dVar40" identifier = identifier) ;) (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" identifier = identifier) ;) (do_statement "do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );" do (compound_statement "{\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      }" { (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 8) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 8) * 4" identifier + (binary_expression "*(int *)(iVar24 + 8) * 4" (pointer_expression "*(int *)(iVar24 + 8)" * (cast_expression "(int *)(iVar24 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }" if (parenthesized_expression "(NAN(fVar33))" ( (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier ))) )) (compound_statement "{\n          uVar8 = 0;\n        }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }" else (compound_statement "{\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(0.0 < fVar33)" ( (binary_expression "0.0 < fVar33" number_literal < identifier) )) (compound_statement "{\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" { (expression_statement "dVar42 = ((double)fVar33 * dVar27) / dVar26;" (assignment_expression "dVar42 = ((double)fVar33 * dVar27) / dVar26" identifier = (binary_expression "((double)fVar33 * dVar27) / dVar26" (parenthesized_expression "((double)fVar33 * dVar27)" ( (binary_expression "(double)fVar33 * dVar27" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar42 < dVar25)" ( (binary_expression "dVar42 < dVar25" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar28)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + dVar28)" ( (binary_expression "dVar42 + dVar28" identifier + identifier) ))) ;) (expression_statement "uVar8 = extraout_v1_02;" (assignment_expression "uVar8 = extraout_v1_02" identifier = identifier) ;) }) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }))) })) }))) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) (if_statement "if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }" { (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (!NAN(fVar33)) goto LAB_00166458;" if (parenthesized_expression "(!NAN(fVar33))" ( (unary_expression "!NAN(fVar33)" ! (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier )))) )) (goto_statement "goto LAB_00166458;" goto statement_identifier ;)) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" else (compound_statement "{\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" { (do_statement "do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);" do (compound_statement "{\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          }" { (while_statement "while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }" { (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }" if (parenthesized_expression "(uVar21 <= uVar23)" ( (binary_expression "uVar21 <= uVar23" identifier <= identifier) )) (compound_statement "{\n                uVar9 = uVar21;\n              }" { (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" identifier = (binary_expression "uVar21 - uVar9" identifier - identifier)) ;) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                uVar21 = 0;\n              }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar23 == 8) {\n                *param_6 = 0;\n              }" if (parenthesized_expression "(uVar23 == 8)" ( (binary_expression "uVar23 == 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 "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar8 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar10 = 0;\n              }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" identifier = (binary_expression "uVar23 - uVar9" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" ( (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar9 & 0x1f))" ( (binary_expression "-1 << (uVar9 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }" if (parenthesized_expression "((uVar23 & 0x20) != 0)" ( (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" ( (binary_expression "uVar23 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                bVar13 = 0;\n              }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar15 < 1) goto LAB_00166434;" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00166434;" goto statement_identifier ;)) })) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);" statement_identifier : (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;)) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(NAN(fVar33))" ( (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier ))) )) (compound_statement "{\nLAB_00166cbc:\n            uVar8 = 0;\n          }" { (labeled_statement "LAB_00166cbc:\n            uVar8 = 0;" statement_identifier : (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" else (compound_statement "{\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" { (labeled_statement "LAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;" statement_identifier : (if_statement "if (fVar33 <= 0.0) goto LAB_00166cbc;" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00166cbc;" goto statement_identifier ;))) (expression_statement "dVar42 = ((double)fVar33 * dVar29) / dVar39;" (assignment_expression "dVar42 = ((double)fVar33 * dVar29) / dVar39" identifier = (binary_expression "((double)fVar33 * dVar29) / dVar39" (parenthesized_expression "((double)fVar33 * dVar29)" ( (binary_expression "(double)fVar33 * dVar29" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + dVar41)" ( (binary_expression "dVar42 + dVar41" identifier + identifier) ))) ;) (expression_statement "uVar8 = extraout_v1_03;" (assignment_expression "uVar8 = extraout_v1_03" identifier = identifier) ;) }) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }))) }))) (if_statement "if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }" { (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) }))) (if_statement "if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (!NAN(fVar33)) goto LAB_00166550;" if (parenthesized_expression "(!NAN(fVar33))" ( (unary_expression "!NAN(fVar33)" ! (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier )))) )) (goto_statement "goto LAB_00166550;" goto statement_identifier ;)) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" else (compound_statement "{\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" { (do_statement "do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);" do (compound_statement "{\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          }" { (while_statement "while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }" { (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }" if (parenthesized_expression "(uVar21 <= uVar23)" ( (binary_expression "uVar21 <= uVar23" identifier <= identifier) )) (compound_statement "{\n                uVar9 = uVar21;\n              }" { (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" identifier = (binary_expression "uVar21 - uVar9" identifier - identifier)) ;) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                uVar21 = 0;\n              }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar23 == 8) {\n                *param_6 = 0;\n              }" if (parenthesized_expression "(uVar23 == 8)" ( (binary_expression "uVar23 == 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 "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar8 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar10 = 0;\n              }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" identifier = (binary_expression "uVar23 - uVar9" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" ( (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar9 & 0x1f))" ( (binary_expression "-1 << (uVar9 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }" if (parenthesized_expression "((uVar23 & 0x20) != 0)" ( (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" ( (binary_expression "uVar23 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                bVar13 = 0;\n              }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar15 < 1) goto LAB_0016652c;" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0016652c;" goto statement_identifier ;)) })) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);" statement_identifier : (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;)) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" if (parenthesized_expression "(NAN(fVar33))" ( (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier ))) )) (compound_statement "{\nLAB_00166cb4:\n            uVar8 = 0;\n          }" { (labeled_statement "LAB_00166cb4:\n            uVar8 = 0;" statement_identifier : (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" else (compound_statement "{\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" { (labeled_statement "LAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;" statement_identifier : (if_statement "if (fVar33 <= 0.0) goto LAB_00166cb4;" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00166cb4;" goto statement_identifier ;))) (expression_statement "dVar42 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar42 = ((double)fVar33 * dVar40) / dVar38" identifier = (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" ( (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + dVar41)" ( (binary_expression "dVar42 + dVar41" identifier + identifier) ))) ;) (expression_statement "uVar8 = extraout_v1_04;" (assignment_expression "uVar8 = extraout_v1_04" identifier = identifier) ;) }) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) }))) }))) (if_statement "if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }" { (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) }))) (if_statement "if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = uVar21;" (assignment_expression "uVar8 = uVar21" identifier = identifier) ;) (if_statement "if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;" if (parenthesized_expression "(*(int *)(iVar24 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar24 + 0x34) == 4" (pointer_expression "*(int *)(iVar24 + 0x34)" * (cast_expression "(int *)(iVar24 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x34)" ( (binary_expression "iVar24 + 0x34" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00166c44;" goto statement_identifier ;)) }) (else_clause "else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }" else (compound_statement "{\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }" { (do_statement "do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);" do (compound_statement "{\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          }" { (while_statement "while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }" { (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }" if (parenthesized_expression "(uVar21 <= uVar23)" ( (binary_expression "uVar21 <= uVar23" identifier <= identifier) )) (compound_statement "{\n                uVar9 = uVar21;\n              }" { (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" identifier = (binary_expression "uVar21 - uVar9" identifier - identifier)) ;) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                uVar21 = 0;\n              }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar23 == 8) {\n                *param_6 = 0;\n              }" if (parenthesized_expression "(uVar23 == 8)" ( (binary_expression "uVar23 == 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 "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar8 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar10 = 0;\n              }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" identifier = (binary_expression "uVar23 - uVar9" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" ( (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar9 & 0x1f))" ( (binary_expression "-1 << (uVar9 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }" if (parenthesized_expression "((uVar23 & 0x20) != 0)" ( (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" ( (binary_expression "uVar23 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                bVar13 = 0;\n              }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar15 < 1) goto LAB_0016662c;" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0016662c;" goto statement_identifier ;)) })) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);" statement_identifier : (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;)) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }" if (parenthesized_expression "(*(int *)(iVar24 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar24 + 0x34) == 4" (pointer_expression "*(int *)(iVar24 + 0x34)" * (cast_expression "(int *)(iVar24 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x34)" ( (binary_expression "iVar24 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" { (labeled_statement "LAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);" statement_identifier : (expression_statement "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" identifier = (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x38) * 4" (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;)) (if_statement "if (fVar33 <= 0.0) goto LAB_00166640;" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (goto_statement "goto LAB_00166640;" goto statement_identifier ;)) (expression_statement "dVar42 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar42 = ((double)fVar33 * dVar40) / dVar38" identifier = (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" ( (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / identifier)) ;) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }" if (parenthesized_expression "(dVar42 < dVar37)" ( (binary_expression "dVar42 < dVar37" identifier < identifier) )) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }" { (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400))" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar42 + *(double *)(puVar2 + 0x1400))" ( (binary_expression "dVar42 + *(double *)(puVar2 + 0x1400)" identifier + (pointer_expression "*(double *)(puVar2 + 0x1400)" * (cast_expression "(double *)(puVar2 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1400)" ( (binary_expression "puVar2 + 0x1400" identifier + number_literal) ))))) ))) ;) (expression_statement "uVar9 = extraout_v1_05;" (assignment_expression "uVar9 = extraout_v1_05" identifier = identifier) ;) }) (else_clause "else {\n              uVar9 = 0xffffffff;\n            }" else (compound_statement "{\n              uVar9 = 0xffffffff;\n            }" { (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) }))) }) (else_clause "else {\nLAB_00166640:\n            uVar9 = 0;\n          }" else (compound_statement "{\nLAB_00166640:\n            uVar9 = 0;\n          }" { (labeled_statement "LAB_00166640:\n            uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) }))) (expression_statement "uVar8 = uVar21;" (assignment_expression "uVar8 = uVar21" identifier = identifier) ;) (if_statement "if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n            param_2[0x15] = 8;\n          }" { (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) }))) (while_statement "while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }" while (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }" { (expression_statement "uVar15 = param_2[0x15];" (assignment_expression "uVar15 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = uVar15;" (assignment_expression "uVar23 = uVar15" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }" if (parenthesized_expression "(uVar21 <= uVar15)" ( (binary_expression "uVar21 <= uVar15" identifier <= identifier) )) (compound_statement "{\n            uVar23 = uVar21;\n          }" { (expression_statement "uVar23 = uVar21;" (assignment_expression "uVar23 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar8 = uVar21 - uVar23;" (assignment_expression "uVar8 = uVar21 - uVar23" identifier = (binary_expression "uVar21 - uVar23" identifier - identifier)) ;) (expression_statement "uVar21 = uVar8;" (assignment_expression "uVar21 = uVar8" identifier = identifier) ;) (if_statement "if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }" if (parenthesized_expression "((int)uVar8 < 0)" ( (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar21 = 0;\n          }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar15 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar15 == 8)" ( (binary_expression "uVar15 == 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 "uVar10 = uVar9 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar9 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar9 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar10 = 0;\n          }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (expression_statement "uVar15 = uVar15 - uVar23;" (assignment_expression "uVar15 = uVar15 - uVar23" identifier = (binary_expression "uVar15 - uVar23" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar15;" (assignment_expression "param_2[0x15] = uVar15" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f))" ( (binary_expression "(~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar23 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar23 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar23 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar23 & 0x1f))" ( (binary_expression "-1 << (uVar23 & 0x1f)" number_literal << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar15 & 0x1f)" ( (binary_expression "uVar15 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }" if (parenthesized_expression "((uVar15 & 0x20) != 0)" ( (binary_expression "(uVar15 & 0x20) != 0" (parenthesized_expression "(uVar15 & 0x20)" ( (binary_expression "uVar15 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar13 = 0;\n          }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            param_6 = param_6 + 1;\n            param_2[0x15] = 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10];" (assignment_expression "param_6 = param_6 + param_2[10]" identifier = (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ]))) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iVar22 == param_4) {\n          return;\n        }" if (parenthesized_expression "(iVar22 == param_4)" ( (binary_expression "iVar22 == param_4" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }" statement_identifier : (if_statement "if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }" { (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0016507c;" goto statement_identifier ;) }))) }) (else_clause "else {\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }" else (compound_statement "{\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }" { (if_statement "if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }" if (parenthesized_expression "(uVar21 == 0x20)" ( (binary_expression "uVar21 == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }" { (if_statement "if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\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_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }" { (if_statement "if (param_4 < 1) {\n          return;\n        }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (do_statement "do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);" do (compound_statement "{\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        }" { (expression_statement "fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));" (assignment_expression "fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" identifier = (cast_expression "(float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) )))) ;) (expression_statement "bVar14 = (byte)((uint)fVar33 >> 8);" (assignment_expression "bVar14 = (byte)((uint)fVar33 >> 8)" identifier = (call_expression "(byte)((uint)fVar33 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 8)" ( (binary_expression "(uint)fVar33 >> 8" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((uint)fVar33 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar33 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x10)" ( (binary_expression "(uint)fVar33 >> 0x10" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)((uint)fVar33 >> 0x18);" (assignment_expression "bVar13 = (byte)((uint)fVar33 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x18)" ( (binary_expression "(uint)fVar33 >> 0x18" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }" { (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (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 "param_6[2] = bVar14;" (assignment_expression "param_6[2] = bVar14" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = SUB41(fVar33,0);" (assignment_expression "param_6[3] = SUB41(fVar33,0)" (subscript_expression "param_6[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }" else (compound_statement "{\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }" { (expression_statement "*param_6 = SUB41(fVar33,0);" (assignment_expression "*param_6 = SUB41(fVar33,0)" (pointer_expression "*param_6" * identifier) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[1] = bVar14;" (assignment_expression "param_6[1] = bVar14" (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] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));" (assignment_expression "fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" identifier = (cast_expression "(float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (binary_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (binary_expression "param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) )))) ;) (expression_statement "bVar14 = (byte)((uint)fVar33 >> 8);" (assignment_expression "bVar14 = (byte)((uint)fVar33 >> 8)" identifier = (call_expression "(byte)((uint)fVar33 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 8)" ( (binary_expression "(uint)fVar33 >> 8" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((uint)fVar33 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar33 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x10)" ( (binary_expression "(uint)fVar33 >> 0x10" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)((uint)fVar33 >> 0x18);" (assignment_expression "bVar13 = (byte)((uint)fVar33 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x18)" ( (binary_expression "(uint)fVar33 >> 0x18" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }" { (expression_statement "param_6[4] = bVar13;" (assignment_expression "param_6[4] = bVar13" (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) ;) (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] = SUB41(fVar33,0);" (assignment_expression "param_6[7] = SUB41(fVar33,0)" (subscript_expression "param_6[7]" identifier [ number_literal ]) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }" else (compound_statement "{\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }" { (expression_statement "param_6[4] = SUB41(fVar33,0);" (assignment_expression "param_6[4] = SUB41(fVar33,0)" (subscript_expression "param_6[4]" identifier [ number_literal ]) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[5] = bVar14;" (assignment_expression "param_6[5] = bVar14" (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] = bVar13;" (assignment_expression "param_6[7] = bVar13" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));" (assignment_expression "fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" identifier = (cast_expression "(float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (binary_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (binary_expression "param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) )))) ;) (expression_statement "bVar14 = (byte)((uint)fVar33 >> 8);" (assignment_expression "bVar14 = (byte)((uint)fVar33 >> 8)" identifier = (call_expression "(byte)((uint)fVar33 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 8)" ( (binary_expression "(uint)fVar33 >> 8" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((uint)fVar33 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar33 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x10)" ( (binary_expression "(uint)fVar33 >> 0x10" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)((uint)fVar33 >> 0x18);" (assignment_expression "bVar13 = (byte)((uint)fVar33 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x18)" ( (binary_expression "(uint)fVar33 >> 0x18" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }" { (expression_statement "param_6[8] = bVar13;" (assignment_expression "param_6[8] = bVar13" (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[10] = bVar14;" (assignment_expression "param_6[10] = bVar14" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = SUB41(fVar33,0);" (assignment_expression "param_6[0xb] = SUB41(fVar33,0)" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }" else (compound_statement "{\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }" { (expression_statement "param_6[8] = SUB41(fVar33,0);" (assignment_expression "param_6[8] = SUB41(fVar33,0)" (subscript_expression "param_6[8]" identifier [ number_literal ]) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[9] = bVar14;" (assignment_expression "param_6[9] = bVar14" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (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] = bVar13;" (assignment_expression "param_6[0xb] = bVar13" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }" { (expression_statement "dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));" (assignment_expression "dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" identifier = (cast_expression "(double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" ( (binary_expression "fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" * (cast_expression "(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (binary_expression "param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) )))) ;) }) (else_clause "else {\n            dVar25 = 0.0;\n          }" else (compound_statement "{\n            dVar25 = 0.0;\n          }" { (expression_statement "dVar25 = 0.0;" (assignment_expression "dVar25 = 0.0" identifier = number_literal) ;) }))) (expression_statement "fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));" (assignment_expression "fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" identifier = (cast_expression "(float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" ( (binary_expression "dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "dVar25 * *(double *)(param_2 + 0x12)" identifier * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) )))) ;) (expression_statement "bVar14 = (byte)((uint)fVar33 >> 8);" (assignment_expression "bVar14 = (byte)((uint)fVar33 >> 8)" identifier = (call_expression "(byte)((uint)fVar33 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 8)" ( (binary_expression "(uint)fVar33 >> 8" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((uint)fVar33 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar33 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x10)" ( (binary_expression "(uint)fVar33 >> 0x10" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)((uint)fVar33 >> 0x18);" (assignment_expression "bVar13 = (byte)((uint)fVar33 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar33 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar33 >> 0x18)" ( (binary_expression "(uint)fVar33 >> 0x18" (cast_expression "(uint)fVar33" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }" { (expression_statement "param_6[0xc] = bVar13;" (assignment_expression "param_6[0xc] = bVar13" (subscript_expression "param_6[0xc]" 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[0xe] = bVar14;" (assignment_expression "param_6[0xe] = bVar14" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = SUB41(fVar33,0);" (assignment_expression "param_6[0xf] = SUB41(fVar33,0)" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }" else (compound_statement "{\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }" { (expression_statement "param_6[0xc] = SUB41(fVar33,0);" (assignment_expression "param_6[0xc] = SUB41(fVar33,0)" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = (call_expression "SUB41(fVar33,0)" identifier (argument_list "(fVar33,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[0xd] = bVar14;" (assignment_expression "param_6[0xd] = bVar14" (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] = bVar13;" (assignment_expression "param_6[0xf] = bVar13" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10] + 0x10;" (assignment_expression "param_6 = param_6 + param_2[10] + 0x10" identifier = (binary_expression "param_6 + param_2[10] + 0x10" (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar22 != param_4)" ( (binary_expression "iVar22 != param_4" identifier != identifier) )) ;) (return_statement "return;" return ;) })) (if_statement "if (param_4 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);" (assignment_expression "dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00" identifier + number_literal) ))))) ;) (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);" (assignment_expression "dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8" identifier + number_literal) ))))) ;) (expression_statement "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (do_statement "do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );" do (compound_statement "{\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }" { (expression_statement "bVar6 = 0;" (assignment_expression "bVar6 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x11] != 1) goto LAB_00165ecc;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165ecc;" goto statement_identifier ;)) (labeled_statement "LAB_001660ec:\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] = bVar17;" (assignment_expression "param_6[1] = bVar17" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = bVar18;" (assignment_expression "param_6[2] = bVar18" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = bVar20;" (assignment_expression "param_6[3] = bVar20" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }" { (expression_statement "dVar29 = (double)fVar33 * dVar26;" (assignment_expression "dVar29 = (double)fVar33 * dVar26" identifier = (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" if (parenthesized_expression "(dVar29 < dVar25)" ( (binary_expression "dVar29 < dVar25" identifier < identifier) )) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }" { (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" if (parenthesized_expression "(dVar29 < dVar27)" ( (binary_expression "dVar29 < dVar27" identifier < identifier) )) (compound_statement "{\n              uVar21 = (uint)dVar29;\n            }" { (expression_statement "uVar21 = (uint)dVar29;" (assignment_expression "uVar21 = (uint)dVar29" identifier = (cast_expression "(uint)dVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" else (compound_statement "{\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" { (expression_statement "uVar21 = (int)(dVar29 - dVar27) | 0x80000000;" (assignment_expression "uVar21 = (int)(dVar29 - dVar27) | 0x80000000" identifier = (binary_expression "(int)(dVar29 - dVar27) | 0x80000000" (cast_expression "(int)(dVar29 - dVar27)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar29 - dVar27)" ( (binary_expression "dVar29 - dVar27" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "bVar19 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar19 = (byte)(uVar21 >> 0x18)" identifier = (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x18)" ( (binary_expression "uVar21 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar13 = (byte)(uVar21 >> 0x10)" identifier = (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x10)" ( (binary_expression "uVar21 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" identifier = (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 8)" ( (binary_expression "uVar21 >> 8" identifier >> number_literal) )))) ;) (expression_statement "bVar6 = (byte)uVar21;" (assignment_expression "bVar6 = (byte)uVar21" identifier = (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" else (compound_statement "{\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" { (expression_statement "bVar6 = 0xff;" (assignment_expression "bVar6 = 0xff" identifier = number_literal) ;) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) }))) (expression_statement "bVar14 = bVar6;" (assignment_expression "bVar14 = bVar6" identifier = identifier) ;) (expression_statement "bVar17 = bVar12;" (assignment_expression "bVar17 = bVar12" identifier = identifier) ;) (expression_statement "bVar18 = bVar13;" (assignment_expression "bVar18 = bVar13" identifier = identifier) ;) (expression_statement "bVar20 = bVar19;" (assignment_expression "bVar20 = bVar19" identifier = identifier) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_001660ec;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_001660ec;" goto statement_identifier ;)) (labeled_statement "LAB_00165ecc:\n          *param_6 = bVar19;" statement_identifier : (expression_statement "*param_6 = bVar19;" (assignment_expression "*param_6 = bVar19" (pointer_expression "*param_6" * identifier) = identifier) ;)) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (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] = bVar6;" (assignment_expression "param_6[3] = bVar6" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }" { (expression_statement "bVar6 = 0;" (assignment_expression "bVar6 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x11] != 1) goto LAB_00165f54;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165f54;" goto statement_identifier ;)) (labeled_statement "LAB_0016611c:\n          param_6[4] = bVar14;" statement_identifier : (expression_statement "param_6[4] = bVar14;" (assignment_expression "param_6[4] = bVar14" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[5] = bVar17;" (assignment_expression "param_6[5] = bVar17" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = bVar18;" (assignment_expression "param_6[6] = bVar18" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = bVar20;" (assignment_expression "param_6[7] = bVar20" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }" { (expression_statement "dVar29 = (double)fVar33 * dVar26;" (assignment_expression "dVar29 = (double)fVar33 * dVar26" identifier = (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" if (parenthesized_expression "(dVar29 < dVar25)" ( (binary_expression "dVar29 < dVar25" identifier < identifier) )) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }" { (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" if (parenthesized_expression "(dVar29 < dVar27)" ( (binary_expression "dVar29 < dVar27" identifier < identifier) )) (compound_statement "{\n              uVar21 = (uint)dVar29;\n            }" { (expression_statement "uVar21 = (uint)dVar29;" (assignment_expression "uVar21 = (uint)dVar29" identifier = (cast_expression "(uint)dVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" else (compound_statement "{\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" { (expression_statement "uVar21 = (int)(dVar29 - dVar27) | 0x80000000;" (assignment_expression "uVar21 = (int)(dVar29 - dVar27) | 0x80000000" identifier = (binary_expression "(int)(dVar29 - dVar27) | 0x80000000" (cast_expression "(int)(dVar29 - dVar27)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar29 - dVar27)" ( (binary_expression "dVar29 - dVar27" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "bVar19 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar19 = (byte)(uVar21 >> 0x18)" identifier = (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x18)" ( (binary_expression "uVar21 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar13 = (byte)(uVar21 >> 0x10)" identifier = (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x10)" ( (binary_expression "uVar21 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" identifier = (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 8)" ( (binary_expression "uVar21 >> 8" identifier >> number_literal) )))) ;) (expression_statement "bVar6 = (byte)uVar21;" (assignment_expression "bVar6 = (byte)uVar21" identifier = (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" else (compound_statement "{\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" { (expression_statement "bVar6 = 0xff;" (assignment_expression "bVar6 = 0xff" identifier = number_literal) ;) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) }))) (expression_statement "bVar14 = bVar6;" (assignment_expression "bVar14 = bVar6" identifier = identifier) ;) (expression_statement "bVar17 = bVar12;" (assignment_expression "bVar17 = bVar12" identifier = identifier) ;) (expression_statement "bVar18 = bVar13;" (assignment_expression "bVar18 = bVar13" identifier = identifier) ;) (expression_statement "bVar20 = bVar19;" (assignment_expression "bVar20 = bVar19" identifier = identifier) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_0016611c;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0016611c;" goto statement_identifier ;)) (labeled_statement "LAB_00165f54:\n          param_6[4] = bVar19;" statement_identifier : (expression_statement "param_6[4] = bVar19;" (assignment_expression "param_6[4] = bVar19" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[5] = bVar13;" (assignment_expression "param_6[5] = bVar13" (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] = bVar6;" (assignment_expression "param_6[7] = bVar6" (subscript_expression "param_6[7]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }" if (parenthesized_expression "(fVar33 <= 0.0)" ( (binary_expression "fVar33 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }" { (expression_statement "bVar6 = 0;" (assignment_expression "bVar6 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (if_statement "if (param_2[0x11] != 1) goto LAB_00165fe8;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165fe8;" goto statement_identifier ;)) (labeled_statement "LAB_001660b8:\n          param_6[8] = bVar14;" statement_identifier : (expression_statement "param_6[8] = bVar14;" (assignment_expression "param_6[8] = bVar14" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[9] = bVar17;" (assignment_expression "param_6[9] = bVar17" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[10] = bVar18;" (assignment_expression "param_6[10] = bVar18" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = bVar20;" (assignment_expression "param_6[0xb] = bVar20" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }" { (expression_statement "dVar29 = (double)fVar33 * dVar26;" (assignment_expression "dVar29 = (double)fVar33 * dVar26" identifier = (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" if (parenthesized_expression "(dVar29 < dVar25)" ( (binary_expression "dVar29 < dVar25" identifier < identifier) )) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }" { (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" if (parenthesized_expression "(dVar29 < dVar27)" ( (binary_expression "dVar29 < dVar27" identifier < identifier) )) (compound_statement "{\n              uVar21 = (uint)dVar29;\n            }" { (expression_statement "uVar21 = (uint)dVar29;" (assignment_expression "uVar21 = (uint)dVar29" identifier = (cast_expression "(uint)dVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" else (compound_statement "{\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" { (expression_statement "uVar21 = (int)(dVar29 - dVar27) | 0x80000000;" (assignment_expression "uVar21 = (int)(dVar29 - dVar27) | 0x80000000" identifier = (binary_expression "(int)(dVar29 - dVar27) | 0x80000000" (cast_expression "(int)(dVar29 - dVar27)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar29 - dVar27)" ( (binary_expression "dVar29 - dVar27" identifier - identifier) ))) | number_literal)) ;) }))) (expression_statement "bVar19 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar19 = (byte)(uVar21 >> 0x18)" identifier = (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x18)" ( (binary_expression "uVar21 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar13 = (byte)(uVar21 >> 0x10)" identifier = (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x10)" ( (binary_expression "uVar21 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" identifier = (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 8)" ( (binary_expression "uVar21 >> 8" identifier >> number_literal) )))) ;) (expression_statement "bVar6 = (byte)uVar21;" (assignment_expression "bVar6 = (byte)uVar21" identifier = (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" else (compound_statement "{\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" { (expression_statement "bVar6 = 0xff;" (assignment_expression "bVar6 = 0xff" identifier = number_literal) ;) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) }))) (expression_statement "bVar14 = bVar6;" (assignment_expression "bVar14 = bVar6" identifier = identifier) ;) (expression_statement "bVar17 = bVar12;" (assignment_expression "bVar17 = bVar12" identifier = identifier) ;) (expression_statement "bVar18 = bVar13;" (assignment_expression "bVar18 = bVar13" identifier = identifier) ;) (expression_statement "bVar20 = bVar19;" (assignment_expression "bVar20 = bVar19" identifier = identifier) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_001660b8;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_001660b8;" goto statement_identifier ;)) (labeled_statement "LAB_00165fe8:\n          param_6[8] = bVar19;" statement_identifier : (expression_statement "param_6[8] = bVar19;" (assignment_expression "param_6[8] = bVar19" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[9] = bVar13;" (assignment_expression "param_6[9] = bVar13" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (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] = bVar6;" (assignment_expression "param_6[0xb] = bVar6" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)" ( (comma_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier = (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) , (binary_expression "fVar33 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }" { (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;" statement_identifier : (if_statement "if (param_2[0x11] != 1) goto LAB_00165e24;" if (parenthesized_expression "(param_2[0x11] != 1)" ( (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00165e24;" goto statement_identifier ;))) (labeled_statement "LAB_00166084:\n          param_6[0xc] = bVar14;" statement_identifier : (expression_statement "param_6[0xc] = bVar14;" (assignment_expression "param_6[0xc] = bVar14" (subscript_expression "param_6[0xc]" 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[0xe] = bVar13;" (assignment_expression "param_6[0xe] = bVar13" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = bVar17;" (assignment_expression "param_6[0xf] = bVar17" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }" else (compound_statement "{\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }" { (expression_statement "dVar29 = (double)fVar33 * dVar26;" (assignment_expression "dVar29 = (double)fVar33 * dVar26" identifier = (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier) * identifier)) ;) (if_statement "if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }" if (parenthesized_expression "(dVar25 <= dVar29)" ( (binary_expression "dVar25 <= dVar29" identifier <= identifier) )) (compound_statement "{\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }" { (expression_statement "bVar14 = 0xff;" (assignment_expression "bVar14 = 0xff" identifier = number_literal) ;) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" identifier = number_literal) ;) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" identifier = number_literal) ;) (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" identifier = number_literal) ;) (goto_statement "goto LAB_00165e14;" goto statement_identifier ;) })) (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" identifier = (binary_expression "dVar29 + dVar28" identifier + identifier)) ;) (if_statement "if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }" if (parenthesized_expression "(dVar29 < *(double *)(puVar2 + 0x1410))" ( (binary_expression "dVar29 < *(double *)(puVar2 + 0x1410)" identifier < (pointer_expression "*(double *)(puVar2 + 0x1410)" * (cast_expression "(double *)(puVar2 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1410)" ( (binary_expression "puVar2 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n            uVar21 = (uint)dVar29;\n          }" { (expression_statement "uVar21 = (uint)dVar29;" (assignment_expression "uVar21 = (uint)dVar29" identifier = (cast_expression "(uint)dVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }" else (compound_statement "{\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }" { (expression_statement "uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;" (assignment_expression "uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar29 - *(double *)(puVar2 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar29 - *(double *)(puVar2 + 0x1410))" ( (binary_expression "dVar29 - *(double *)(puVar2 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar2 + 0x1410)" * (cast_expression "(double *)(puVar2 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1410)" ( (binary_expression "puVar2 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "bVar17 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar17 = (byte)(uVar21 >> 0x18)" identifier = (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x18)" ( (binary_expression "uVar21 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar13 = (byte)(uVar21 >> 0x10)" identifier = (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 0x10)" ( (binary_expression "uVar21 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" identifier = (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar21 >> 8)" ( (binary_expression "uVar21 >> 8" identifier >> number_literal) )))) ;) (expression_statement "bVar14 = (byte)uVar21;" (assignment_expression "bVar14 = (byte)uVar21" identifier = (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if (param_2[0x11] == 1) goto LAB_00166084;" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00166084;" goto statement_identifier ;)) (labeled_statement "LAB_00165e24:\n          param_6[0xc] = bVar17;" statement_identifier : (expression_statement "param_6[0xc] = bVar17;" (assignment_expression "param_6[0xc] = bVar17" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_6[0xd] = bVar13;" (assignment_expression "param_6[0xd] = bVar13" (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] = bVar14;" (assignment_expression "param_6[0xf] = bVar14" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10] + 0x10;" (assignment_expression "param_6 = param_6 + param_2[10] + 0x10" identifier = (binary_expression "param_6 + param_2[10] + 0x10" (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iVar22 == param_4) {\n          return;\n        }" if (parenthesized_expression "(iVar22 == param_4)" ( (binary_expression "iVar22 == param_4" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (uVar21 != 0x40) goto LAB_00165538;" if (parenthesized_expression "(uVar21 != 0x40)" ( (binary_expression "uVar21 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_00165538;" goto statement_identifier ;)) (if_statement "if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\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_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }" { (if_statement "if (param_4 < 1) {\n        return;\n      }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (do_statement "do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);" do (compound_statement "{\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      }" { (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" identifier = (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))))) ;) (expression_statement "bVar13 = (byte)((ulonglong)dVar25 >> 0x20);" (assignment_expression "bVar13 = (byte)((ulonglong)dVar25 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x20)" ( (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar6 = (byte)((ulonglong)dVar25 >> 8);" (assignment_expression "bVar6 = (byte)((ulonglong)dVar25 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 8)" ( (binary_expression "(ulonglong)dVar25 >> 8" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar20 = (byte)((ulonglong)dVar25 >> 0x10);" (assignment_expression "bVar20 = (byte)((ulonglong)dVar25 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x10)" ( (binary_expression "(ulonglong)dVar25 >> 0x10" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar14 = (byte)((ulonglong)dVar25 >> 0x18);" (assignment_expression "bVar14 = (byte)((ulonglong)dVar25 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x18)" ( (binary_expression "(ulonglong)dVar25 >> 0x18" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar18 = (byte)((ulonglong)dVar25 >> 0x28);" (assignment_expression "bVar18 = (byte)((ulonglong)dVar25 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x28)" ( (binary_expression "(ulonglong)dVar25 >> 0x28" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar17 = (byte)((ulonglong)dVar25 >> 0x30);" (assignment_expression "bVar17 = (byte)((ulonglong)dVar25 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x30)" ( (binary_expression "(ulonglong)dVar25 >> 0x30" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((ulonglong)dVar25 >> 0x38);" (assignment_expression "bVar12 = (byte)((ulonglong)dVar25 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x38)" ( (binary_expression "(ulonglong)dVar25 >> 0x38" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }" { (expression_statement "*param_6 = bVar12;" (assignment_expression "*param_6 = bVar12" (pointer_expression "*param_6" * identifier) = identifier) ;) (expression_statement "param_6[1] = bVar17;" (assignment_expression "param_6[1] = bVar17" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = bVar18;" (assignment_expression "param_6[2] = bVar18" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[4] = bVar14;" (assignment_expression "param_6[4] = bVar14" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[5] = bVar20;" (assignment_expression "param_6[5] = bVar20" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = bVar6;" (assignment_expression "param_6[6] = bVar6" (subscript_expression "param_6[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[7] = SUB81(dVar25,0);" (assignment_expression "param_6[7] = SUB81(dVar25,0)" (subscript_expression "param_6[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar25,0)" identifier (argument_list "(dVar25,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }" else (compound_statement "{\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }" { (expression_statement "*param_6 = SUB81(dVar25,0);" (assignment_expression "*param_6 = SUB81(dVar25,0)" (pointer_expression "*param_6" * identifier) = (call_expression "SUB81(dVar25,0)" identifier (argument_list "(dVar25,0)" ( identifier , number_literal )))) ;) (expression_statement "param_6[1] = bVar6;" (assignment_expression "param_6[1] = bVar6" (subscript_expression "param_6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[2] = bVar20;" (assignment_expression "param_6[2] = bVar20" (subscript_expression "param_6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[3] = bVar14;" (assignment_expression "param_6[3] = bVar14" (subscript_expression "param_6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[4] = bVar13;" (assignment_expression "param_6[4] = bVar13" (subscript_expression "param_6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[5] = bVar18;" (assignment_expression "param_6[5] = bVar18" (subscript_expression "param_6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[6] = bVar17;" (assignment_expression "param_6[6] = bVar17" (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 "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" identifier = (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff)" identifier = (call_expression "(byte)((ulonglong)dVar25 & 0xff000000ff)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "bVar6 = (byte)((ulonglong)dVar25 >> 8);" (assignment_expression "bVar6 = (byte)((ulonglong)dVar25 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 8)" ( (binary_expression "(ulonglong)dVar25 >> 8" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar20 = (byte)((ulonglong)dVar25 >> 0x10);" (assignment_expression "bVar20 = (byte)((ulonglong)dVar25 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x10)" ( (binary_expression "(ulonglong)dVar25 >> 0x10" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((ulonglong)dVar25 >> 0x18);" (assignment_expression "bVar12 = (byte)((ulonglong)dVar25 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x18)" ( (binary_expression "(ulonglong)dVar25 >> 0x18" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);" (assignment_expression "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" identifier = (call_expression "(byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" ( (binary_expression "((ulonglong)dVar25 & 0xff000000ff) >> 0x20" (parenthesized_expression "((ulonglong)dVar25 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )) >> number_literal) )))) ;) (expression_statement "bVar17 = (byte)((ulonglong)dVar25 >> 0x28);" (assignment_expression "bVar17 = (byte)((ulonglong)dVar25 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x28)" ( (binary_expression "(ulonglong)dVar25 >> 0x28" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar14 = (byte)((ulonglong)dVar25 >> 0x30);" (assignment_expression "bVar14 = (byte)((ulonglong)dVar25 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x30)" ( (binary_expression "(ulonglong)dVar25 >> 0x30" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)((ulonglong)dVar25 >> 0x38);" (assignment_expression "bVar13 = (byte)((ulonglong)dVar25 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x38)" ( (binary_expression "(ulonglong)dVar25 >> 0x38" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }" { (expression_statement "param_6[8] = bVar13;" (assignment_expression "param_6[8] = bVar13" (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) ;) (expression_statement "param_6[10] = bVar17;" (assignment_expression "param_6[10] = bVar17" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = bVar18;" (assignment_expression "param_6[0xb] = bVar18" (subscript_expression "param_6[0xb]" 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] = bVar20;" (assignment_expression "param_6[0xd] = bVar20" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xe] = bVar6;" (assignment_expression "param_6[0xe] = bVar6" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = bVar19;" (assignment_expression "param_6[0xf] = bVar19" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }" else (compound_statement "{\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }" { (expression_statement "param_6[8] = bVar19;" (assignment_expression "param_6[8] = bVar19" (subscript_expression "param_6[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[9] = bVar6;" (assignment_expression "param_6[9] = bVar6" (subscript_expression "param_6[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[10] = bVar20;" (assignment_expression "param_6[10] = bVar20" (subscript_expression "param_6[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xb] = bVar12;" (assignment_expression "param_6[0xb] = bVar12" (subscript_expression "param_6[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xc] = bVar18;" (assignment_expression "param_6[0xc] = bVar18" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xd] = bVar17;" (assignment_expression "param_6[0xd] = bVar17" (subscript_expression "param_6[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xe] = bVar14;" (assignment_expression "param_6[0xe] = bVar14" (subscript_expression "param_6[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0xf] = bVar13;" (assignment_expression "param_6[0xf] = bVar13" (subscript_expression "param_6[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" identifier = (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff)" identifier = (call_expression "(byte)((ulonglong)dVar25 & 0xff000000ff)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "bVar6 = (byte)((ulonglong)dVar25 >> 8);" (assignment_expression "bVar6 = (byte)((ulonglong)dVar25 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 8)" ( (binary_expression "(ulonglong)dVar25 >> 8" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar20 = (byte)((ulonglong)dVar25 >> 0x10);" (assignment_expression "bVar20 = (byte)((ulonglong)dVar25 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x10)" ( (binary_expression "(ulonglong)dVar25 >> 0x10" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((ulonglong)dVar25 >> 0x18);" (assignment_expression "bVar12 = (byte)((ulonglong)dVar25 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x18)" ( (binary_expression "(ulonglong)dVar25 >> 0x18" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);" (assignment_expression "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" identifier = (call_expression "(byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" ( (binary_expression "((ulonglong)dVar25 & 0xff000000ff) >> 0x20" (parenthesized_expression "((ulonglong)dVar25 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )) >> number_literal) )))) ;) (expression_statement "bVar17 = (byte)((ulonglong)dVar25 >> 0x28);" (assignment_expression "bVar17 = (byte)((ulonglong)dVar25 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x28)" ( (binary_expression "(ulonglong)dVar25 >> 0x28" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar14 = (byte)((ulonglong)dVar25 >> 0x30);" (assignment_expression "bVar14 = (byte)((ulonglong)dVar25 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x30)" ( (binary_expression "(ulonglong)dVar25 >> 0x30" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)((ulonglong)dVar25 >> 0x38);" (assignment_expression "bVar13 = (byte)((ulonglong)dVar25 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x38)" ( (binary_expression "(ulonglong)dVar25 >> 0x38" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }" { (expression_statement "param_6[0x10] = bVar13;" (assignment_expression "param_6[0x10] = bVar13" (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) ;) (expression_statement "param_6[0x12] = bVar17;" (assignment_expression "param_6[0x12] = bVar17" (subscript_expression "param_6[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x13] = bVar18;" (assignment_expression "param_6[0x13] = bVar18" (subscript_expression "param_6[0x13]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x14] = bVar12;" (assignment_expression "param_6[0x14] = bVar12" (subscript_expression "param_6[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x15] = bVar20;" (assignment_expression "param_6[0x15] = bVar20" (subscript_expression "param_6[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x16] = bVar6;" (assignment_expression "param_6[0x16] = bVar6" (subscript_expression "param_6[0x16]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x17] = bVar19;" (assignment_expression "param_6[0x17] = bVar19" (subscript_expression "param_6[0x17]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }" else (compound_statement "{\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }" { (expression_statement "param_6[0x10] = bVar19;" (assignment_expression "param_6[0x10] = bVar19" (subscript_expression "param_6[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x11] = bVar6;" (assignment_expression "param_6[0x11] = bVar6" (subscript_expression "param_6[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x12] = bVar20;" (assignment_expression "param_6[0x12] = bVar20" (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[0x14] = bVar18;" (assignment_expression "param_6[0x14] = bVar18" (subscript_expression "param_6[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x15] = bVar17;" (assignment_expression "param_6[0x15] = bVar17" (subscript_expression "param_6[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x16] = bVar14;" (assignment_expression "param_6[0x16] = bVar14" (subscript_expression "param_6[0x16]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x17] = bVar13;" (assignment_expression "param_6[0x17] = bVar13" (subscript_expression "param_6[0x17]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }" { (expression_statement "dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));" (assignment_expression "dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" identifier = (cast_expression "(double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" ( (binary_expression "fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" * (cast_expression "(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" ( (binary_expression "param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) )))) ;) }) (else_clause "else {\n          dVar25 = 0.0;\n        }" else (compound_statement "{\n          dVar25 = 0.0;\n        }" { (expression_statement "dVar25 = 0.0;" (assignment_expression "dVar25 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);" (assignment_expression "dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" identifier = (binary_expression "dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "dVar25 * *(double *)(param_2 + 0x12)" identifier * (pointer_expression "*(double *)(param_2 + 0x12)" * (cast_expression "(double *)(param_2 + 0x12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x12)" ( (binary_expression "param_2 + 0x12" identifier + number_literal) ))))) + (pointer_expression "*(double *)(param_2 + 4)" * (cast_expression "(double *)(param_2 + 4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff)" identifier = (call_expression "(byte)((ulonglong)dVar25 & 0xff000000ff)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "bVar6 = (byte)((ulonglong)dVar25 >> 8);" (assignment_expression "bVar6 = (byte)((ulonglong)dVar25 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 8)" ( (binary_expression "(ulonglong)dVar25 >> 8" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar20 = (byte)((ulonglong)dVar25 >> 0x10);" (assignment_expression "bVar20 = (byte)((ulonglong)dVar25 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x10)" ( (binary_expression "(ulonglong)dVar25 >> 0x10" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar12 = (byte)((ulonglong)dVar25 >> 0x18);" (assignment_expression "bVar12 = (byte)((ulonglong)dVar25 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x18)" ( (binary_expression "(ulonglong)dVar25 >> 0x18" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);" (assignment_expression "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" identifier = (call_expression "(byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" ( (binary_expression "((ulonglong)dVar25 & 0xff000000ff) >> 0x20" (parenthesized_expression "((ulonglong)dVar25 & 0xff000000ff)" ( (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) & number_literal) )) >> number_literal) )))) ;) (expression_statement "bVar17 = (byte)((ulonglong)dVar25 >> 0x28);" (assignment_expression "bVar17 = (byte)((ulonglong)dVar25 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x28)" ( (binary_expression "(ulonglong)dVar25 >> 0x28" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar14 = (byte)((ulonglong)dVar25 >> 0x30);" (assignment_expression "bVar14 = (byte)((ulonglong)dVar25 >> 0x30)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x30)" ( (binary_expression "(ulonglong)dVar25 >> 0x30" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar13 = (byte)((ulonglong)dVar25 >> 0x38);" (assignment_expression "bVar13 = (byte)((ulonglong)dVar25 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar25 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar25 >> 0x38)" ( (binary_expression "(ulonglong)dVar25 >> 0x38" (cast_expression "(ulonglong)dVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }" if (parenthesized_expression "(param_2[0x11] == 1)" ( (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }" { (expression_statement "param_6[0x18] = bVar13;" (assignment_expression "param_6[0x18] = bVar13" (subscript_expression "param_6[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x19] = bVar14;" (assignment_expression "param_6[0x19] = bVar14" (subscript_expression "param_6[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1a] = bVar17;" (assignment_expression "param_6[0x1a] = bVar17" (subscript_expression "param_6[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1b] = bVar18;" (assignment_expression "param_6[0x1b] = bVar18" (subscript_expression "param_6[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1c] = bVar12;" (assignment_expression "param_6[0x1c] = bVar12" (subscript_expression "param_6[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1d] = bVar20;" (assignment_expression "param_6[0x1d] = bVar20" (subscript_expression "param_6[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1e] = bVar6;" (assignment_expression "param_6[0x1e] = bVar6" (subscript_expression "param_6[0x1e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1f] = bVar19;" (assignment_expression "param_6[0x1f] = bVar19" (subscript_expression "param_6[0x1f]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }" else (compound_statement "{\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }" { (expression_statement "param_6[0x18] = bVar19;" (assignment_expression "param_6[0x18] = bVar19" (subscript_expression "param_6[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x19] = bVar6;" (assignment_expression "param_6[0x19] = bVar6" (subscript_expression "param_6[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1a] = bVar20;" (assignment_expression "param_6[0x1a] = bVar20" (subscript_expression "param_6[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1b] = bVar12;" (assignment_expression "param_6[0x1b] = bVar12" (subscript_expression "param_6[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1c] = bVar18;" (assignment_expression "param_6[0x1c] = bVar18" (subscript_expression "param_6[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1d] = bVar17;" (assignment_expression "param_6[0x1d] = bVar17" (subscript_expression "param_6[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1e] = bVar14;" (assignment_expression "param_6[0x1e] = bVar14" (subscript_expression "param_6[0x1e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_6[0x1f] = bVar13;" (assignment_expression "param_6[0x1f] = bVar13" (subscript_expression "param_6[0x1f]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10] + 0x20;" (assignment_expression "param_6 = param_6 + param_2[10] + 0x20" identifier = (binary_expression "param_6 + param_2[10] + 0x20" (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iVar22 != param_4)" ( (binary_expression "iVar22 != param_4" identifier != identifier) )) ;) (return_statement "return;" return ;) })) }))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (uVar21 < 0x41) {\n    uVar8 = uVar21;\n  }" if (parenthesized_expression "(uVar21 < 0x41)" ( (binary_expression "uVar21 < 0x41" identifier < number_literal) )) (compound_statement "{\n    uVar8 = uVar21;\n  }" { (expression_statement "uVar8 = uVar21;" (assignment_expression "uVar8 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "uVar15 = 2 << (uVar8 & 0x1f);" (assignment_expression "uVar15 = 2 << (uVar8 & 0x1f)" identifier = (binary_expression "2 << (uVar8 & 0x1f)" number_literal << (parenthesized_expression "(uVar8 & 0x1f)" ( (binary_expression "uVar8 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar9 = uVar15;" (assignment_expression "uVar9 = uVar15" identifier = identifier) ;) (expression_statement "uVar23 = 1 >> (~uVar8 & 0x1f);" (assignment_expression "uVar23 = 1 >> (~uVar8 & 0x1f)" identifier = (binary_expression "1 >> (~uVar8 & 0x1f)" number_literal >> (parenthesized_expression "(~uVar8 & 0x1f)" ( (binary_expression "~uVar8 & 0x1f" (unary_expression "~uVar8" ~ identifier) & number_literal) )))) ;) (if_statement "if ((uVar8 & 0x20) != 0) {\n    uVar9 = 0;\n    uVar23 = uVar15;\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    uVar9 = 0;\n    uVar23 = uVar15;\n  }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar23 = uVar15;" (assignment_expression "uVar23 = uVar15" identifier = identifier) ;) })) (expression_statement "local_b8 = uVar9 - 1;" (assignment_expression "local_b8 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1);" (assignment_expression "local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1)" identifier = (binary_expression "(uint)(local_b8 < uVar9) + (uVar23 - 1)" (call_expression "(uint)(local_b8 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b8 < uVar9)" ( (binary_expression "local_b8 < uVar9" identifier < identifier) ))) + (parenthesized_expression "(uVar23 - 1)" ( (binary_expression "uVar23 - 1" identifier - number_literal) )))) ;) (labeled_statement "LAB_0016507c:\n  if (param_4 < 1) {\n    return;\n  }" statement_identifier : (if_statement "if (param_4 < 1) {\n    return;\n  }" if (parenthesized_expression "(param_4 < 1)" ( (binary_expression "param_4 < 1" identifier < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "uVar36 = 0;" (assignment_expression "uVar36 = 0" identifier = number_literal) ;) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a58" identifier + number_literal) ))))) ;) (expression_statement "dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a60" identifier + number_literal) ))))) ;) (expression_statement "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" identifier = (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" * (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1a50" identifier + number_literal) ))))) ;) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "dVar25 = dVar29;" (assignment_expression "dVar25 = dVar29" identifier = identifier) ;) (expression_statement "dVar26 = dVar39;" (assignment_expression "dVar26 = dVar39" identifier = identifier) ;) (expression_statement "dVar27 = dVar37;" (assignment_expression "dVar27 = dVar37" identifier = identifier) ;) (expression_statement "dVar28 = dVar29;" (assignment_expression "dVar28 = dVar29" identifier = identifier) ;) (if_statement "if (!NAN(fVar33)) goto LAB_001650f0;" if (parenthesized_expression "(!NAN(fVar33))" ( (unary_expression "!NAN(fVar33)" ! (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier )))) )) (goto_statement "goto LAB_001650f0;" goto statement_identifier ;)) (labeled_statement "LAB_00165520:\n  do {\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  } while (NAN(fVar33));" statement_identifier : (do_statement "do {\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  } while (NAN(fVar33));" do (compound_statement "{\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  }" { (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" statement_identifier : (expression_statement "uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" (assignment_expression "uVar8 = (uint)((ulonglong)uVar43 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar43 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar43 >> 0x20)" ( (binary_expression "(ulonglong)uVar43 >> 0x20" (cast_expression "(ulonglong)uVar43" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) (if_statement "if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }" { (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (!NAN(fVar33)) goto LAB_00165204;" if (parenthesized_expression "(!NAN(fVar33))" ( (unary_expression "!NAN(fVar33)" ! (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier )))) )) (goto_statement "goto LAB_00165204;" goto statement_identifier ;)) (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);" do (compound_statement "{\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      }" { (while_statement "while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }" { (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }" if (parenthesized_expression "(uVar21 <= uVar23)" ( (binary_expression "uVar21 <= uVar23" identifier <= identifier) )) (compound_statement "{\n            uVar9 = uVar21;\n          }" { (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" identifier = (binary_expression "uVar21 - uVar9" identifier - identifier)) ;) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar21 = 0;\n          }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar23 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar23 == 8)" ( (binary_expression "uVar23 == 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 "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" identifier = (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f)" (parenthesized_expression "(uVar8 << 1)" ( (binary_expression "uVar8 << 1" identifier << number_literal) )) << (parenthesized_expression "(~uVar21 & 0x1f)" ( (binary_expression "~uVar21 & 0x1f" (unary_expression "~uVar21" ~ identifier) & number_literal) ))) | (binary_expression "(uint)uVar43 >> (uVar21 & 0x1f)" (cast_expression "(uint)uVar43" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" { (expression_statement "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar8 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) })) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" identifier = (binary_expression "uVar23 - uVar9" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" ( (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar9 & 0x1f))" ( (binary_expression "-1 << (uVar9 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }" if (parenthesized_expression "((uVar23 & 0x20) != 0)" ( (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" ( (binary_expression "uVar23 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar13 = 0;\n          }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar15 < 1) goto LAB_001651e4;" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_001651e4;" goto statement_identifier ;)) })) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);" statement_identifier : (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;)) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" * (cast_expression "(int *)(iVar24 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x14)" ( (binary_expression "iVar24 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" if (parenthesized_expression "(NAN(fVar33))" ( (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier ))) )) (compound_statement "{\nLAB_001655cc:\n        uVar43 = 0;\n      }" { (labeled_statement "LAB_001655cc:\n        uVar43 = 0;" statement_identifier : (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" else (compound_statement "{\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" { (labeled_statement "LAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;" statement_identifier : (if_statement "if (fVar33 <= (float)uVar36) goto LAB_001655cc;" if (parenthesized_expression "(fVar33 <= (float)uVar36)" ( (binary_expression "fVar33 <= (float)uVar36" identifier <= (cast_expression "(float)uVar36" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_001655cc;" goto statement_identifier ;))) (expression_statement "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);" (assignment_expression "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" ( (pointer_expression "*(code *)PTR_FUN_003a8960" * (cast_expression "(code *)PTR_FUN_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_c0,local_b8)" ( identifier , identifier ))))) ;) (expression_statement "dVar38 = (dVar38 * (double)fVar33) / dVar39;" (assignment_expression "dVar38 = (dVar38 * (double)fVar33) / dVar39" identifier = (binary_expression "(dVar38 * (double)fVar33) / dVar39" (parenthesized_expression "(dVar38 * (double)fVar33)" ( (binary_expression "dVar38 * (double)fVar33" identifier * (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) (if_statement "if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }" if (parenthesized_expression "(dVar38 < dVar28)" ( (binary_expression "dVar38 < dVar28" identifier < identifier) )) (compound_statement "{\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }" { (expression_statement "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);" (assignment_expression "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" identifier = (call_expression "(*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar38 + dVar37)" ( (binary_expression "dVar38 + dVar37" identifier + identifier) )))) ;) }) (else_clause "else {\n          uVar43 = 0xffffffffffffffff;\n        }" else (compound_statement "{\n          uVar43 = 0xffffffffffffffff;\n        }" { (expression_statement "uVar43 = 0xffffffffffffffff;" (assignment_expression "uVar43 = 0xffffffffffffffff" identifier = number_literal) ;) }))) }))) (if_statement "if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }" { (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) }))) (expression_statement "uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" (assignment_expression "uVar8 = (uint)((ulonglong)uVar43 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar43 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar43 >> 0x20)" ( (binary_expression "(ulonglong)uVar43 >> 0x20" (cast_expression "(ulonglong)uVar43" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }" { (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 8) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 8) * 4" identifier + (binary_expression "*(int *)(iVar24 + 8) * 4" (pointer_expression "*(int *)(iVar24 + 8)" * (cast_expression "(int *)(iVar24 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (!NAN(fVar33)) goto LAB_0016531c;" if (parenthesized_expression "(!NAN(fVar33))" ( (unary_expression "!NAN(fVar33)" ! (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier )))) )) (goto_statement "goto LAB_0016531c;" goto statement_identifier ;)) (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);" do (compound_statement "{\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      }" { (while_statement "while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }" { (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }" if (parenthesized_expression "(uVar21 <= uVar23)" ( (binary_expression "uVar21 <= uVar23" identifier <= identifier) )) (compound_statement "{\n            uVar9 = uVar21;\n          }" { (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" identifier = (binary_expression "uVar21 - uVar9" identifier - identifier)) ;) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar21 = 0;\n          }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar23 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar23 == 8)" ( (binary_expression "uVar23 == 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 "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" identifier = (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f)" (parenthesized_expression "(uVar8 << 1)" ( (binary_expression "uVar8 << 1" identifier << number_literal) )) << (parenthesized_expression "(~uVar21 & 0x1f)" ( (binary_expression "~uVar21 & 0x1f" (unary_expression "~uVar21" ~ identifier) & number_literal) ))) | (binary_expression "(uint)uVar43 >> (uVar21 & 0x1f)" (cast_expression "(uint)uVar43" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" { (expression_statement "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar8 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) })) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" identifier = (binary_expression "uVar23 - uVar9" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" ( (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar9 & 0x1f))" ( (binary_expression "-1 << (uVar9 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }" if (parenthesized_expression "((uVar23 & 0x20) != 0)" ( (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" ( (binary_expression "uVar23 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar13 = 0;\n          }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar15 < 1) goto LAB_001652fc;" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_001652fc;" goto statement_identifier ;)) })) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);" statement_identifier : (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;)) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 8) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 8) * 4" identifier + (binary_expression "*(int *)(iVar24 + 8) * 4" (pointer_expression "*(int *)(iVar24 + 8)" * (cast_expression "(int *)(iVar24 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" if (parenthesized_expression "(NAN(fVar33))" ( (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier ))) )) (compound_statement "{\nLAB_001655c0:\n        uVar43 = 0;\n      }" { (labeled_statement "LAB_001655c0:\n        uVar43 = 0;" statement_identifier : (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" else (compound_statement "{\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" { (labeled_statement "LAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;" statement_identifier : (if_statement "if (fVar33 <= (float)uVar36) goto LAB_001655c0;" if (parenthesized_expression "(fVar33 <= (float)uVar36)" ( (binary_expression "fVar33 <= (float)uVar36" identifier <= (cast_expression "(float)uVar36" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_001655c0;" goto statement_identifier ;))) (expression_statement "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);" (assignment_expression "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" ( (pointer_expression "*(code *)PTR_FUN_003a8960" * (cast_expression "(code *)PTR_FUN_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_c0,local_b8)" ( identifier , identifier ))))) ;) (expression_statement "dVar38 = (dVar38 * (double)fVar33) / dVar39;" (assignment_expression "dVar38 = (dVar38 * (double)fVar33) / dVar39" identifier = (binary_expression "(dVar38 * (double)fVar33) / dVar39" (parenthesized_expression "(dVar38 * (double)fVar33)" ( (binary_expression "dVar38 * (double)fVar33" identifier * (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) (if_statement "if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }" if (parenthesized_expression "(dVar38 < dVar29)" ( (binary_expression "dVar38 < dVar29" identifier < identifier) )) (compound_statement "{\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }" { (expression_statement "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);" (assignment_expression "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" identifier = (call_expression "(*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar38 + dVar37)" ( (binary_expression "dVar38 + dVar37" identifier + identifier) )))) ;) }) (else_clause "else {\n          uVar43 = 0xffffffffffffffff;\n        }" else (compound_statement "{\n          uVar43 = 0xffffffffffffffff;\n        }" { (expression_statement "uVar43 = 0xffffffffffffffff;" (assignment_expression "uVar43 = 0xffffffffffffffff" identifier = number_literal) ;) }))) }))) (if_statement "if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }" { (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) }))) (expression_statement "uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" (assignment_expression "uVar8 = (uint)((ulonglong)uVar43 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar43 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar43 >> 0x20)" ( (binary_expression "(ulonglong)uVar43 >> 0x20" (cast_expression "(ulonglong)uVar43" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }" { (if_statement "if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;" if (parenthesized_expression "(*(int *)(iVar24 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar24 + 0x34) == 4" (pointer_expression "*(int *)(iVar24 + 0x34)" * (cast_expression "(int *)(iVar24 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x34)" ( (binary_expression "iVar24 + 0x34" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0016554c;" goto statement_identifier ;)) (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }" else (compound_statement "{\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }" { (do_statement "do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);" do (compound_statement "{\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      }" { (while_statement "while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }" { (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }" if (parenthesized_expression "(uVar21 <= uVar23)" ( (binary_expression "uVar21 <= uVar23" identifier <= identifier) )) (compound_statement "{\n            uVar9 = uVar21;\n          }" { (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" identifier = (binary_expression "uVar21 - uVar9" identifier - identifier)) ;) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar21 = 0;\n          }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (if_statement "if (uVar23 == 8) {\n            *param_6 = 0;\n          }" if (parenthesized_expression "(uVar23 == 8)" ( (binary_expression "uVar23 == 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 "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" identifier = (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f)" (parenthesized_expression "(uVar8 << 1)" ( (binary_expression "uVar8 << 1" identifier << number_literal) )) << (parenthesized_expression "(~uVar21 & 0x1f)" ( (binary_expression "~uVar21 & 0x1f" (unary_expression "~uVar21" ~ identifier) & number_literal) ))) | (binary_expression "(uint)uVar43 >> (uVar21 & 0x1f)" (cast_expression "(uint)uVar43" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" { (expression_statement "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar8 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) })) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" identifier = (binary_expression "uVar23 - uVar9" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" ( (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar9 & 0x1f))" ( (binary_expression "-1 << (uVar9 & 0x1f)" number_literal << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }" if (parenthesized_expression "((uVar23 & 0x20) != 0)" ( (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" ( (binary_expression "uVar23 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            bVar13 = 0;\n          }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar23 != 0) break;" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar15 < 1) goto LAB_00165418;" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00165418;" goto statement_identifier ;)) })) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);" statement_identifier : (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;)) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }" if (parenthesized_expression "(*(int *)(iVar24 + 0x34) == 4)" ( (binary_expression "*(int *)(iVar24 + 0x34) == 4" (pointer_expression "*(int *)(iVar24 + 0x34)" * (cast_expression "(int *)(iVar24 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x34)" ( (binary_expression "iVar24 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" { (labeled_statement "LAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);" statement_identifier : (expression_statement "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" identifier = (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" identifier - (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x38) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x38) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x38) * 4" (pointer_expression "*(int *)(iVar24 + 0x38)" * (cast_expression "(int *)(iVar24 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x38)" ( (binary_expression "iVar24 + 0x38" identifier + number_literal) )))) * number_literal)) )))))) ;)) (if_statement "if (fVar33 <= (float)uVar36) goto LAB_00165430;" if (parenthesized_expression "(fVar33 <= (float)uVar36)" ( (binary_expression "fVar33 <= (float)uVar36" identifier <= (cast_expression "(float)uVar36" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00165430;" goto statement_identifier ;)) (expression_statement "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);" (assignment_expression "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" ( (pointer_expression "*(code *)PTR_FUN_003a8960" * (cast_expression "(code *)PTR_FUN_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_c0,local_b8)" ( identifier , identifier ))))) ;) (expression_statement "dVar38 = (dVar38 * (double)fVar33) / dVar39;" (assignment_expression "dVar38 = (dVar38 * (double)fVar33) / dVar39" identifier = (binary_expression "(dVar38 * (double)fVar33) / dVar39" (parenthesized_expression "(dVar38 * (double)fVar33)" ( (binary_expression "dVar38 * (double)fVar33" identifier * (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) (if_statement "if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }" if (parenthesized_expression "(dVar38 < dVar29)" ( (binary_expression "dVar38 < dVar29" identifier < identifier) )) (compound_statement "{\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }" { (expression_statement "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);" (assignment_expression "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" identifier = (call_expression "(*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar38 + dVar37)" ( (binary_expression "dVar38 + dVar37" identifier + identifier) )))) ;) }) (else_clause "else {\n          uVar43 = 0xffffffffffffffff;\n        }" else (compound_statement "{\n          uVar43 = 0xffffffffffffffff;\n        }" { (expression_statement "uVar43 = 0xffffffffffffffff;" (assignment_expression "uVar43 = 0xffffffffffffffff" identifier = number_literal) ;) }))) }) (else_clause "else {\nLAB_00165430:\n        uVar43 = 0;\n      }" else (compound_statement "{\nLAB_00165430:\n        uVar43 = 0;\n      }" { (labeled_statement "LAB_00165430:\n        uVar43 = 0;" statement_identifier : (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" identifier = number_literal) ;)) }))) (if_statement "if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        param_2[0x15] = 8;\n      }" { (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) }))) (expression_statement "uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" (assignment_expression "uVar8 = (uint)((ulonglong)uVar43 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar43 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar43 >> 0x20)" ( (binary_expression "(ulonglong)uVar43 >> 0x20" (cast_expression "(ulonglong)uVar43" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }" { (do_statement "do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);" do (compound_statement "{\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      }" { (expression_statement "uVar9 = param_2[0x15];" (assignment_expression "uVar9 = param_2[0x15]" identifier = (subscript_expression "param_2[0x15]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = uVar9;" (assignment_expression "uVar23 = uVar9" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }" if (parenthesized_expression "(uVar21 <= uVar9)" ( (binary_expression "uVar21 <= uVar9" identifier <= identifier) )) (compound_statement "{\n          uVar23 = uVar21;\n        }" { (expression_statement "uVar23 = uVar21;" (assignment_expression "uVar23 = uVar21" identifier = identifier) ;) })) (expression_statement "uVar15 = uVar21 - uVar23;" (assignment_expression "uVar15 = uVar21 - uVar23" identifier = (binary_expression "uVar21 - uVar23" identifier - identifier)) ;) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" identifier = identifier) ;) (if_statement "if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }" if (parenthesized_expression "((int)uVar15 < 0)" ( (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          uVar21 = 0;\n        }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (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 "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" identifier = (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f)" (parenthesized_expression "(uVar8 << 1)" ( (binary_expression "uVar8 << 1" identifier << number_literal) )) << (parenthesized_expression "(~uVar21 & 0x1f)" ( (binary_expression "~uVar21 & 0x1f" (unary_expression "~uVar21" ~ identifier) & number_literal) ))) | (binary_expression "(uint)uVar43 >> (uVar21 & 0x1f)" (cast_expression "(uint)uVar43" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) ))))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }" { (expression_statement "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" identifier = (binary_expression "uVar8 >> (uVar21 & 0x1f)" identifier >> (parenthesized_expression "(uVar21 & 0x1f)" ( (binary_expression "uVar21 & 0x1f" identifier & number_literal) )))) ;) })) (expression_statement "uVar9 = uVar9 - uVar23;" (assignment_expression "uVar9 = uVar9 - uVar23" identifier = (binary_expression "uVar9 - uVar23" identifier - identifier)) ;) (expression_statement "param_2[0x15] = uVar9;" (assignment_expression "param_2[0x15] = uVar9" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f))" ( (binary_expression "(~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar23 & 0x1f)) & uVar10)" ( (binary_expression "~(-1 << (uVar23 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar23 & 0x1f))" ~ (parenthesized_expression "(-1 << (uVar23 & 0x1f))" ( (binary_expression "-1 << (uVar23 & 0x1f)" number_literal << (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "(uVar9 & 0x1f)" ( (binary_expression "uVar9 & 0x1f" identifier & number_literal) ))) )))) ;) (if_statement "if ((uVar9 & 0x20) != 0) {\n          bVar13 = 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          bVar13 = 0;\n        }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) })) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" * identifier) = (binary_expression "bVar13 | *param_6" identifier | (pointer_expression "*param_6" * identifier))) ;) (if_statement "if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 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[0x15] = 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" identifier [ number_literal ]) = number_literal) ;) })) }) while (parenthesized_expression "(0 < (int)uVar15)" ( (binary_expression "0 < (int)uVar15" number_literal < (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "param_6 = param_6 + param_2[10];" (assignment_expression "param_6 = param_6 + param_2[10]" identifier = (binary_expression "param_6 + param_2[10]" identifier + (subscript_expression "param_2[10]" identifier [ number_literal ]))) ;) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier = (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" * (cast_expression "(int *)(param_1 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c0)" ( (binary_expression "param_1 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iVar22 == param_4) {\n      return;\n    }" if (parenthesized_expression "(iVar22 == param_4)" ( (binary_expression "iVar22 == param_4" identifier == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(int *)(param_1 + 0x2d0)" * (cast_expression "(int *)(param_1 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" identifier = (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" * (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" ( (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" * (cast_expression "(int *)(iVar24 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x20)" ( (binary_expression "iVar24 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) }) while (parenthesized_expression "(NAN(fVar33))" ( (call_expression "NAN(fVar33)" identifier (argument_list "(fVar33)" ( identifier ))) )) ;)) (labeled_statement "LAB_001650f0:\n  if (fVar33 <= (float)uVar36) goto LAB_00165520;" statement_identifier : (if_statement "if (fVar33 <= (float)uVar36) goto LAB_00165520;" if (parenthesized_expression "(fVar33 <= (float)uVar36)" ( (binary_expression "fVar33 <= (float)uVar36" identifier <= (cast_expression "(float)uVar36" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00165520;" goto statement_identifier ;))) (expression_statement "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);" (assignment_expression "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" identifier = (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" ( (pointer_expression "*(code *)PTR_FUN_003a8960" * (cast_expression "(code *)PTR_FUN_003a8960" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_c0,local_b8)" ( identifier , identifier ))))) ;) (expression_statement "dVar38 = (dVar38 * (double)fVar33) / dVar26;" (assignment_expression "dVar38 = (dVar38 * (double)fVar33) / dVar26" identifier = (binary_expression "(dVar38 * (double)fVar33) / dVar26" (parenthesized_expression "(dVar38 * (double)fVar33)" ( (binary_expression "dVar38 * (double)fVar33" identifier * (cast_expression "(double)fVar33" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier)) ;) (if_statement "if (dVar38 < dVar25) {\n    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);\n  }\n  else {\n    uVar43 = 0xffffffffffffffff;\n  }" if (parenthesized_expression "(dVar38 < dVar25)" ( (binary_expression "dVar38 < dVar25" identifier < identifier) )) (compound_statement "{\n    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);\n  }" { (expression_statement "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);" (assignment_expression "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27)" identifier = (call_expression "(*(code *)PTR_FUN_003a8954)(dVar38 + dVar27)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" ( (pointer_expression "*(code *)PTR_FUN_003a8954" * (cast_expression "(code *)PTR_FUN_003a8954" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar38 + dVar27)" ( (binary_expression "dVar38 + dVar27" identifier + identifier) )))) ;) }) (else_clause "else {\n    uVar43 = 0xffffffffffffffff;\n  }" else (compound_statement "{\n    uVar43 = 0xffffffffffffffff;\n  }" { (expression_statement "uVar43 = 0xffffffffffffffff;" (assignment_expression "uVar43 = 0xffffffffffffffff" identifier = number_literal) ;) }))) (goto_statement "goto LAB_00165130;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (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 (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (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) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (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)) ))))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (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)) ))))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (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 IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (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)) ))))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> 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 ]) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) ))))) ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & 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 ]) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (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))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) 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) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (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 IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (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) ;) (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 IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (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 (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) ;) (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 IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (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 (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 - (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) ;) (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 ]) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (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 TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( 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)) ;) (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 = (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) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - IDENT) )))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - IDENT) )))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - IDENT) )))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (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 - (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (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) )) (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) ;) (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 = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (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 { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) }) (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 IDENT + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) }))) (goto_statement goto statement_identifier ;) })) (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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (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 < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) % LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression IDENT << LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression IDENT << LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression 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 IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression 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 IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 IDENT + LIT)) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression IDENT << LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }))) })))))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression 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 == (binary_expression IDENT << LIT)) )) (compound_statement { (return_statement return ;) })) }) while (parenthesized_expression ( BOOL )) ;) })) (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) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (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 { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) | (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_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 IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (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 = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) & LIT) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) | (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_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 IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (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 = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) & LIT) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) | (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_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 IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (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 IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_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)) )))))) , (binary_expression IDENT <= LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) & LIT) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression (binary_expression LIT - IDENT) & LIT) ))) | (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) < LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = IDENT) ;) (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> (parenthesized_expression ( (binary_expression 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 IDENT = (binary_expression IDENT - IDENT)) ;) (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 IDENT & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression 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 IDENT | (pointer_expression * 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = IDENT) ;) (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> (parenthesized_expression ( (binary_expression 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 IDENT = (binary_expression IDENT - IDENT)) ;) (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 IDENT & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression 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 IDENT | (pointer_expression * 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = IDENT) ;) (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> (parenthesized_expression ( (binary_expression 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 IDENT = (binary_expression IDENT - IDENT)) ;) (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 IDENT & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression 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 IDENT | (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (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 - (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 ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (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 = IDENT) ;) (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> (parenthesized_expression ( (binary_expression 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 IDENT = (binary_expression IDENT - IDENT)) ;) (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 IDENT & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression 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 IDENT | (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (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)) ))))) * (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) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }) (else_clause else (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 IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (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)) ))))) * (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) )))) ;) (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 ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }) (else_clause else (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 IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (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)) ))))) * (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) )))) ;) (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 ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }) (else_clause else (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) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_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)) ))))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (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) )))) ;) (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 ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }) (else_clause else (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 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) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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) ;) (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) ;) (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 IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (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) ;) (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 (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 IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (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) ;) (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 (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 IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (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 - (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) ;) (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 ]) = 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 IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * 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) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 (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))) ;) (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) )) (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) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (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)) ))))) * (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) = 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) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }) (else_clause else (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) ;) }))) (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)) ))))) * (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 (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> 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 ]) = 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 ]) = 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 (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)) ))))) * (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 (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> 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 ]) = 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 ]) = 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 = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_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)) ))))) )))) ;) }) (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 (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) >> 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 ]) = 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 ]) = 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 = (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 LIT >> (parenthesized_expression ( (binary_expression (unary_expression ~ 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 IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (parenthesized_expression ( (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) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (call_expression IDENT (argument_list ( IDENT )))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = IDENT) ;) (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) << (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) & LIT) ))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> (parenthesized_expression ( (binary_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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression 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 IDENT | (pointer_expression * 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ 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 (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 = IDENT) ;) (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) << (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) & LIT) ))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> (parenthesized_expression ( (binary_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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression 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 IDENT | (pointer_expression * 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) << (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) & LIT) ))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> (parenthesized_expression ( (binary_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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression 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 IDENT | (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (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 - (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 <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) )))) ;) }) (else_clause else (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ 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 LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (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 = IDENT) ;) (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT << LIT) )) << (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) & LIT) ))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> (parenthesized_expression ( (binary_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 = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression 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 IDENT | (pointer_expression * 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) ;) })) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) (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)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_00164d40(int param_1,uint *param_2,undefined4 param_3,int param_4,int param_5,byte *param_6\n                 ,int param_7)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar6;\n  undefined2 uVar5;\n  int iVar7;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  uint uVar8;\n  uint extraout_v1_02;\n  uint extraout_v1_03;\n  uint extraout_v1_04;\n  uint uVar9;\n  uint extraout_v1_05;\n  uint extraout_v1_06;\n  uint extraout_v1_07;\n  uint extraout_v1_08;\n  uint extraout_v1_09;\n  byte bVar12;\n  byte bVar13;\n  uint uVar10;\n  byte *pbVar11;\n  byte bVar14;\n  uint uVar15;\n  uint uVar16;\n  byte bVar17;\n  byte bVar18;\n  byte bVar19;\n  byte bVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  int iVar24;\n  double dVar25;\n  float fVar31;\n  double dVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  float fVar32;\n  double dVar30;\n  double extraout_f0_1;\n  float fVar33;\n  ulonglong uVar34;\n  ulonglong uVar35;\n  undefined8 uVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  undefined8 uVar43;\n  int local_c0;\n  uint local_b8;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar3 = PTR_s_t_to_left_003a88e4;\n  puVar2 = PTR_LAB_003a88e0;\n  if (param_7 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  if (*(int *)(param_7 + 0x1c) != -0x54535255) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  uVar21 = *param_2;\n  if (uVar21 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (param_4 < 1) {\n      return;\n    }\n    iVar22 = 0;\n    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar21 < 0x11) {\n    if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }\n  uVar8 = 0;\n  if (uVar21 < 0x41) {\n    uVar8 = uVar21;\n  }\n  uVar8 = uVar8 - 1;\n  uVar15 = 2 << (uVar8 & 0x1f);\n  uVar9 = uVar15;\n  uVar23 = 1 >> (~uVar8 & 0x1f);\n  if ((uVar8 & 0x20) != 0) {\n    uVar9 = 0;\n    uVar23 = uVar15;\n  }\n  local_b8 = uVar9 - 1;\n  local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1);\nLAB_0016507c:\n  if (param_4 < 1) {\n    return;\n  }\n  uVar36 = 0;\n  iVar24 = *(int *)(param_1 + 0x2d0);\n  iVar22 = 0;\n  dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n  dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n  dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n  fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n  dVar25 = dVar29;\n  dVar26 = dVar39;\n  dVar27 = dVar37;\n  dVar28 = dVar29;\n  if (!NAN(fVar33)) goto LAB_001650f0;\nLAB_00165520:\n  do {\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  } while (NAN(fVar33));\nLAB_001650f0:\n  if (fVar33 <= (float)uVar36) goto LAB_00165520;\n  dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n  dVar38 = (dVar38 * (double)fVar33) / dVar26;\n  if (dVar38 < dVar25) {\n    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);\n  }\n  else {\n    uVar43 = 0xffffffffffffffff;\n  }\n  goto LAB_00165130;\n}" (primitive_type "void") (function_declarator "FUN_00164d40(int param_1,uint *param_2,undefined4 param_3,int param_4,int param_5,byte *param_6\n                 ,int param_7)" (identifier "FUN_00164d40") (parameter_list "(int param_1,uint *param_2,undefined4 param_3,int param_4,int param_5,byte *param_6\n                 ,int 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 "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (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 "int param_7" (primitive_type "int") (identifier "param_7")) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar6;\n  undefined2 uVar5;\n  int iVar7;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  uint uVar8;\n  uint extraout_v1_02;\n  uint extraout_v1_03;\n  uint extraout_v1_04;\n  uint uVar9;\n  uint extraout_v1_05;\n  uint extraout_v1_06;\n  uint extraout_v1_07;\n  uint extraout_v1_08;\n  uint extraout_v1_09;\n  byte bVar12;\n  byte bVar13;\n  uint uVar10;\n  byte *pbVar11;\n  byte bVar14;\n  uint uVar15;\n  uint uVar16;\n  byte bVar17;\n  byte bVar18;\n  byte bVar19;\n  byte bVar20;\n  uint uVar21;\n  int iVar22;\n  uint uVar23;\n  int iVar24;\n  double dVar25;\n  float fVar31;\n  double dVar26;\n  double dVar27;\n  double dVar28;\n  double dVar29;\n  float fVar32;\n  double dVar30;\n  double extraout_f0_1;\n  float fVar33;\n  ulonglong uVar34;\n  ulonglong uVar35;\n  undefined8 uVar36;\n  double dVar37;\n  double dVar38;\n  double dVar39;\n  double dVar40;\n  double dVar41;\n  double dVar42;\n  undefined8 uVar43;\n  int local_c0;\n  uint local_b8;\n  \n  puVar4 = PTR_s_courses_003a88ec;\n  puVar3 = PTR_s_t_to_left_003a88e4;\n  puVar2 = PTR_LAB_003a88e0;\n  if (param_7 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  if (*(int *)(param_7 + 0x1c) != -0x54535255) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }\n  uVar21 = *param_2;\n  if (uVar21 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (param_4 < 1) {\n      return;\n    }\n    iVar22 = 0;\n    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );\n  }\n  if (uVar21 < 0x11) {\n    if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }\n  uVar8 = 0;\n  if (uVar21 < 0x41) {\n    uVar8 = uVar21;\n  }\n  uVar8 = uVar8 - 1;\n  uVar15 = 2 << (uVar8 & 0x1f);\n  uVar9 = uVar15;\n  uVar23 = 1 >> (~uVar8 & 0x1f);\n  if ((uVar8 & 0x20) != 0) {\n    uVar9 = 0;\n    uVar23 = uVar15;\n  }\n  local_b8 = uVar9 - 1;\n  local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1);\nLAB_0016507c:\n  if (param_4 < 1) {\n    return;\n  }\n  uVar36 = 0;\n  iVar24 = *(int *)(param_1 + 0x2d0);\n  iVar22 = 0;\n  dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n  dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n  dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n  fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n  fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n  dVar25 = dVar29;\n  dVar26 = dVar39;\n  dVar27 = dVar37;\n  dVar28 = dVar29;\n  if (!NAN(fVar33)) goto LAB_001650f0;\nLAB_00165520:\n  do {\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  } while (NAN(fVar33));\nLAB_001650f0:\n  if (fVar33 <= (float)uVar36) goto LAB_00165520;\n  dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n  dVar38 = (dVar38 * (double)fVar33) / dVar26;\n  if (dVar38 < dVar25) {\n    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);\n  }\n  else {\n    uVar43 = 0xffffffffffffffff;\n  }\n  goto LAB_00165130;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "byte bVar6;" (type_identifier "byte") (identifier "bVar6") (; ";")) (declaration "undefined2 uVar5;" (type_identifier "undefined2") (identifier "uVar5") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int extraout_v1;" (primitive_type "int") (identifier "extraout_v1") (; ";")) (declaration "int extraout_v1_00;" (primitive_type "int") (identifier "extraout_v1_00") (; ";")) (declaration "int extraout_v1_01;" (primitive_type "int") (identifier "extraout_v1_01") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint extraout_v1_02;" (type_identifier "uint") (identifier "extraout_v1_02") (; ";")) (declaration "uint extraout_v1_03;" (type_identifier "uint") (identifier "extraout_v1_03") (; ";")) (declaration "uint extraout_v1_04;" (type_identifier "uint") (identifier "extraout_v1_04") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint extraout_v1_05;" (type_identifier "uint") (identifier "extraout_v1_05") (; ";")) (declaration "uint extraout_v1_06;" (type_identifier "uint") (identifier "extraout_v1_06") (; ";")) (declaration "uint extraout_v1_07;" (type_identifier "uint") (identifier "extraout_v1_07") (; ";")) (declaration "uint extraout_v1_08;" (type_identifier "uint") (identifier "extraout_v1_08") (; ";")) (declaration "uint extraout_v1_09;" (type_identifier "uint") (identifier "extraout_v1_09") (; ";")) (declaration "byte bVar12;" (type_identifier "byte") (identifier "bVar12") (; ";")) (declaration "byte bVar13;" (type_identifier "byte") (identifier "bVar13") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "byte bVar18;" (type_identifier "byte") (identifier "bVar18") (; ";")) (declaration "byte bVar19;" (type_identifier "byte") (identifier "bVar19") (; ";")) (declaration "byte bVar20;" (type_identifier "byte") (identifier "bVar20") (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "double dVar25;" (primitive_type "double") (identifier "dVar25") (; ";")) (declaration "float fVar31;" (primitive_type "float") (identifier "fVar31") (; ";")) (declaration "double dVar26;" (primitive_type "double") (identifier "dVar26") (; ";")) (declaration "double dVar27;" (primitive_type "double") (identifier "dVar27") (; ";")) (declaration "double dVar28;" (primitive_type "double") (identifier "dVar28") (; ";")) (declaration "double dVar29;" (primitive_type "double") (identifier "dVar29") (; ";")) (declaration "float fVar32;" (primitive_type "float") (identifier "fVar32") (; ";")) (declaration "double dVar30;" (primitive_type "double") (identifier "dVar30") (; ";")) (declaration "double extraout_f0_1;" (primitive_type "double") (identifier "extraout_f0_1") (; ";")) (declaration "float fVar33;" (primitive_type "float") (identifier "fVar33") (; ";")) (declaration "ulonglong uVar34;" (type_identifier "ulonglong") (identifier "uVar34") (; ";")) (declaration "ulonglong uVar35;" (type_identifier "ulonglong") (identifier "uVar35") (; ";")) (declaration "undefined8 uVar36;" (type_identifier "undefined8") (identifier "uVar36") (; ";")) (declaration "double dVar37;" (primitive_type "double") (identifier "dVar37") (; ";")) (declaration "double dVar38;" (primitive_type "double") (identifier "dVar38") (; ";")) (declaration "double dVar39;" (primitive_type "double") (identifier "dVar39") (; ";")) (declaration "double dVar40;" (primitive_type "double") (identifier "dVar40") (; ";")) (declaration "double dVar41;" (primitive_type "double") (identifier "dVar41") (; ";")) (declaration "double dVar42;" (primitive_type "double") (identifier "dVar42") (; ";")) (declaration "undefined8 uVar43;" (type_identifier "undefined8") (identifier "uVar43") (; ";")) (declaration "int local_c0;" (primitive_type "int") (identifier "local_c0") (; ";")) (declaration "uint local_b8;" (type_identifier "uint") (identifier "local_b8") (; ";")) (expression_statement "puVar4 = PTR_s_courses_003a88ec;" (assignment_expression "puVar4 = PTR_s_courses_003a88ec" (identifier "puVar4") (= "=") (identifier "PTR_s_courses_003a88ec")) (; ";")) (expression_statement "puVar3 = PTR_s_t_to_left_003a88e4;" (assignment_expression "puVar3 = PTR_s_t_to_left_003a88e4" (identifier "puVar3") (= "=") (identifier "PTR_s_t_to_left_003a88e4")) (; ";")) (expression_statement "puVar2 = PTR_LAB_003a88e0;" (assignment_expression "puVar2 = PTR_LAB_003a88e0" (identifier "puVar2") (= "=") (identifier "PTR_LAB_003a88e0")) (; ";")) (if_statement "if (param_7 == 0) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" (if "if") (parenthesized_expression "(param_7 == 0)" (( "(") (binary_expression "param_7 == 0" (identifier "param_7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" ({ "{") (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,\n               PTR_s_courses_003a88ec + -0x75c0)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1cac" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1cac")) (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x7af0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x7af0")) (, ",") (number_literal "0x385") (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x75c0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x75c0")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_7 + 0x1c) != -0x54535255) {\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_7 + 0x1c) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_7 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_7 + 0x1c)" (* "*") (cast_expression "(int *)(param_7 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + 0x1c)" (( "(") (binary_expression "param_7 + 0x1c" (identifier "param_7") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);\n    return;\n  }" ({ "{") (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,\n               PTR_s_courses_003a88ec + -0x75c0)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x294c" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x294c")) (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x7af0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x7af0")) (, ",") (number_literal "0x386") (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x75c0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x75c0")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" (identifier "uVar21") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (uVar21 == 0x10) {\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (param_4 < 1) {\n      return;\n    }\n    iVar22 = 0;\n    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );\n  }" (if "if") (parenthesized_expression "(uVar21 == 0x10)" (( "(") (binary_expression "uVar21 == 0x10" (identifier "uVar21") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (param_4 < 1) {\n      return;\n    }\n    iVar22 = 0;\n    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n    do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );\n  }" ({ "{") (if_statement "if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\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_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      uVar21 = 1;\n      iVar24 = 4;\n      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);\n      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);\n      dVar26 = dVar25;\n      dVar27 = dVar25;\n      dVar28 = dVar25;\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);\n      return;\n    }" ({ "{") (if_statement "if (param_4 < 1) {\n        return;\n      }" (if "if") (parenthesized_expression "(param_4 < 1)" (( "(") (binary_expression "param_4 < 1" (identifier "param_4") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" (identifier "uVar21") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar24 = 4;" (assignment_expression "iVar24 = 4" (identifier "iVar24") (= "=") (number_literal "4")) (; ";")) (expression_statement "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);" (assignment_expression "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440)" (identifier "dVar25") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1440)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1440)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1440)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1440" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1440")) () ")"))))) (; ";")) (expression_statement "uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (identifier "uVar34") (= "=") (binary_expression "(ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a50" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a50")) () ")"))))) (; ";")) (expression_statement "dVar26 = dVar25;" (assignment_expression "dVar26 = dVar25" (identifier "dVar26") (= "=") (identifier "dVar25")) (; ";")) (expression_statement "dVar27 = dVar25;" (assignment_expression "dVar27 = dVar25" (identifier "dVar27") (= "=") (identifier "dVar25")) (; ";")) (expression_statement "dVar28 = dVar25;" (assignment_expression "dVar28 = dVar25" (identifier "dVar28") (= "=") (identifier "dVar25")) (; ";")) (do_statement "do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      } while (iVar22 != param_4);" (do "do") (compound_statement "{\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;\n        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }\n        param_6 = param_6 + 4;\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;\n        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        param_6 = param_6 + 2;\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }\n        uVar5 = FUN_00155b60(uVar35);\n        bVar13 = (byte)((ushort)uVar5 >> 8);\n        if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 2;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        dVar25 = extraout_f0_1;\n      }" ({ "{") (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25;" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25" (identifier "dVar25") (= "=") (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 dVar25" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (* "*") (identifier "dVar25"))) (; ";")) (expression_statement "uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));" (assignment_expression "uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" (identifier "uVar5") (= "=") (call_expression "FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" (identifier "FUN_00155b60") (argument_list "(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" (( "(") (call_expression "CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" (identifier "CONCAT44") (argument_list "((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" (( "(") (cast_expression "(int)((ulonglong)dVar25 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar25 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(float)dVar25" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar25")) () ")"))) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar13 = (byte)((ushort)uVar5 >> 8)" (identifier "bVar13") (= "=") (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar5 >> 8)" (( "(") (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar5")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" (if "if") (parenthesized_expression "(param_2[0x11] == uVar21)" (( "(") (binary_expression "param_2[0x11] == uVar21" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (identifier "uVar21")) () ")")) (compound_statement "{\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }" ({ "{") (expression_statement "*param_6 = (byte)uVar5;" (assignment_expression "*param_6 = (byte)uVar5" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (} "}")) (else_clause "else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" (else "else") (compound_statement "{\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" ({ "{") (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "param_6[1] = (byte)uVar5;" (assignment_expression "param_6[1] = (byte)uVar5" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5"))) (; ";")) (} "}")))) (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27;" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27" (identifier "dVar25") (= "=") (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 dVar27" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (* "*") (identifier "dVar27"))) (; ";")) (expression_statement "uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));" (assignment_expression "uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" (identifier "uVar5") (= "=") (call_expression "FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" (identifier "FUN_00155b60") (argument_list "(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25))" (( "(") (call_expression "CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" (identifier "CONCAT44") (argument_list "((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" (( "(") (cast_expression "(int)((ulonglong)dVar25 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar25 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(float)dVar25" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar25")) () ")"))) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar13 = (byte)((ushort)uVar5 >> 8)" (identifier "bVar13") (= "=") (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar5 >> 8)" (( "(") (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar5")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == uVar21) {\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }\n        else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }" (if "if") (parenthesized_expression "(param_2[0x11] == uVar21)" (( "(") (binary_expression "param_2[0x11] == uVar21" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (identifier "uVar21")) () ")")) (compound_statement "{\n          param_6[2] = (byte)uVar5;\n          param_6[3] = bVar13;\n        }" ({ "{") (expression_statement "param_6[2] = (byte)uVar5;" (assignment_expression "param_6[2] = (byte)uVar5" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "param_6[3] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (} "}")) (else_clause "else {\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }" (else "else") (compound_statement "{\n          param_6[2] = bVar13;\n          param_6[3] = (byte)uVar5;\n        }" ({ "{") (expression_statement "param_6[2] = bVar13;" (assignment_expression "param_6[2] = bVar13" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "param_6[3] = (byte)uVar5;" (assignment_expression "param_6[3] = (byte)uVar5" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5"))) (; ";")) (} "}")))) (expression_statement "param_6 = param_6 + 4;" (assignment_expression "param_6 = param_6 + 4" (identifier "param_6") (= "=") (binary_expression "param_6 + 4" (identifier "param_6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26" (identifier "dVar25") (= "=") (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (* "*") (identifier "dVar26"))) (; ";")) (expression_statement "uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);" (assignment_expression "uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" (identifier "uVar35") (= "=") (call_expression "CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" (identifier "CONCAT44") (argument_list "((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" (( "(") (cast_expression "(int)((ulonglong)dVar25 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar25 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(float)dVar25" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar25")) () ")")))) (; ";")) (expression_statement "uVar5 = FUN_00155b60(uVar35);" (assignment_expression "uVar5 = FUN_00155b60(uVar35)" (identifier "uVar5") (= "=") (call_expression "FUN_00155b60(uVar35)" (identifier "FUN_00155b60") (argument_list "(uVar35)" (( "(") (identifier "uVar35") () ")")))) (; ";")) (expression_statement "bVar13 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar13 = (byte)((ushort)uVar5 >> 8)" (identifier "bVar13") (= "=") (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar5 >> 8)" (( "(") (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar5")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" (if "if") (parenthesized_expression "(param_2[0x11] == uVar21)" (( "(") (binary_expression "param_2[0x11] == uVar21" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (identifier "uVar21")) () ")")) (compound_statement "{\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }" ({ "{") (expression_statement "*param_6 = (byte)uVar5;" (assignment_expression "*param_6 = (byte)uVar5" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (} "}")) (else_clause "else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" (else "else") (compound_statement "{\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" ({ "{") (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "param_6[1] = (byte)uVar5;" (assignment_expression "param_6[1] = (byte)uVar5" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5"))) (; ";")) (} "}")))) (expression_statement "param_6 = param_6 + 2;" (assignment_expression "param_6 = param_6 + 2" (identifier "param_6") (= "=") (binary_expression "param_6 + 2" (identifier "param_6") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }\n        else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (identifier "iVar24")) () ")")) (compound_statement "{\n          dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;\n          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);\n        }" ({ "{") (expression_statement "dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28;" (assignment_expression "dVar25 = (double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28" (identifier "dVar25") (= "=") (binary_expression "(double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *\n                   dVar28" (cast_expression "(double)((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "((float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" (( "(") (binary_expression "(float)uVar34 -\n                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (cast_expression "(float)uVar34" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar34")) (- "-") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) () ")"))) (* "*") (identifier "dVar28"))) (; ";")) (expression_statement "uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);" (assignment_expression "uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" (identifier "uVar35") (= "=") (call_expression "CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" (identifier "CONCAT44") (argument_list "((int)((ulonglong)dVar25 >> 0x20),(float)dVar25)" (( "(") (cast_expression "(int)((ulonglong)dVar25 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)dVar25 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(float)dVar25" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar25")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }" (else "else") (compound_statement "{\n          uVar35 = uVar35 & 0xffffffff00000000;\n        }" ({ "{") (expression_statement "uVar35 = uVar35 & 0xffffffff00000000;" (assignment_expression "uVar35 = uVar35 & 0xffffffff00000000" (identifier "uVar35") (= "=") (binary_expression "uVar35 & 0xffffffff00000000" (identifier "uVar35") (& "&") (number_literal "0xffffffff00000000"))) (; ";")) (} "}")))) (expression_statement "uVar5 = FUN_00155b60(uVar35);" (assignment_expression "uVar5 = FUN_00155b60(uVar35)" (identifier "uVar5") (= "=") (call_expression "FUN_00155b60(uVar35)" (identifier "FUN_00155b60") (argument_list "(uVar35)" (( "(") (identifier "uVar35") () ")")))) (; ";")) (expression_statement "bVar13 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar13 = (byte)((ushort)uVar5 >> 8)" (identifier "bVar13") (= "=") (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar5 >> 8)" (( "(") (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar5")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == uVar21) {\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }\n        else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" (if "if") (parenthesized_expression "(param_2[0x11] == uVar21)" (( "(") (binary_expression "param_2[0x11] == uVar21" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (identifier "uVar21")) () ")")) (compound_statement "{\n          *param_6 = (byte)uVar5;\n          param_6[1] = bVar13;\n        }" ({ "{") (expression_statement "*param_6 = (byte)uVar5;" (assignment_expression "*param_6 = (byte)uVar5" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (} "}")) (else_clause "else {\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" (else "else") (compound_statement "{\n          *param_6 = bVar13;\n          param_6[1] = (byte)uVar5;\n        }" ({ "{") (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "param_6[1] = (byte)uVar5;" (assignment_expression "param_6[1] = (byte)uVar5" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5"))) (; ";")) (} "}")))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_6 = param_6 + param_2[10] + 2;" (assignment_expression "param_6 = param_6 + param_2[10] + 2" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[10] + 2" (binary_expression "param_6 + param_2[10]" (identifier "param_6") (+ "+") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]"))) (+ "+") (number_literal "2"))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" (* "*") (cast_expression "(int *)(param_1 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c0)" (( "(") (binary_expression "param_1 + 0x2c0" (identifier "param_1") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (expression_statement "dVar25 = extraout_f0_1;" (assignment_expression "dVar25 = extraout_f0_1" (identifier "dVar25") (= "=") (identifier "extraout_f0_1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar22 != param_4)" (( "(") (binary_expression "iVar22 != param_4" (identifier "iVar22") (!= "!=") (identifier "param_4")) () ")")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (param_4 < 1) {\n      return;\n    }" (if "if") (parenthesized_expression "(param_4 < 1)" (( "(") (binary_expression "param_4 < 1" (identifier "param_4") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" (identifier "fVar31") (= "=") (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" (* "*") (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a50" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a50")) () ")"))))) (; ";")) (expression_statement "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" (identifier "dVar26") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1400" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" (identifier "dVar25") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1410" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1410")) () ")"))))) (; ";")) (do_statement "do {\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    } while( true );" (do "do") (compound_statement "{\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }\n      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n      if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }\n      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }\n      iVar22 = iVar22 + 1;\n      param_6 = param_6 + param_2[10] + 8;\n      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      if (iVar22 == param_4) {\n        return;\n      }\n    }" ({ "{") (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }" (if "if") (parenthesized_expression "(fVar33 <= 0.0)" (( "(") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165b70;\nLAB_00165d84:\n        *param_6 = bVar12;\n        param_6[1] = bVar14;\n      }" ({ "{") (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (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")) (; ";")) (if_statement "if (param_2[0x11] != 1) goto LAB_00165b70;" (if "if") (parenthesized_expression "(param_2[0x11] != 1)" (( "(") (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_00165b70;" (goto "goto") (statement_identifier "LAB_00165b70") (; ";"))) (labeled_statement "LAB_00165d84:\n        *param_6 = bVar12;" (statement_identifier "LAB_00165d84") (: ":") (expression_statement "*param_6 = bVar12;" (assignment_expression "*param_6 = bVar12" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar12")) (; ";"))) (expression_statement "param_6[1] = bVar14;" (assignment_expression "param_6[1] = bVar14" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (} "}")) (else_clause "else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }" (else "else") (compound_statement "{\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d84;\nLAB_00165b70:\n        *param_6 = bVar13;\n        param_6[1] = bVar17;\n      }" ({ "{") (if_statement "if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" (if "if") (parenthesized_expression "(fVar33 < fVar31)" (( "(") (binary_expression "fVar33 < fVar31" (identifier "fVar33") (< "<") (identifier "fVar31")) () ")")) (compound_statement "{\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }" ({ "{") (expression_statement "dVar27 = (double)fVar33 + dVar26;" (assignment_expression "dVar27 = (double)fVar33 + dVar26" (identifier "dVar27") (= "=") (binary_expression "(double)fVar33 + dVar26" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (+ "+") (identifier "dVar26"))) (; ";")) (if_statement "if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }" (if "if") (parenthesized_expression "(dVar25 <= dVar27)" (( "(") (binary_expression "dVar25 <= dVar27" (identifier "dVar25") (<= "<=") (identifier "dVar27")) () ")")) (compound_statement "{\n            dVar27 = dVar27 - dVar25;\n          }" ({ "{") (expression_statement "dVar27 = dVar27 - dVar25;" (assignment_expression "dVar27 = dVar27 - dVar25" (identifier "dVar27") (= "=") (binary_expression "dVar27 - dVar25" (identifier "dVar27") (- "-") (identifier "dVar25"))) (; ";")) (} "}"))) (expression_statement "bVar13 = (byte)((uint)(int)dVar27 >> 8);" (assignment_expression "bVar13 = (byte)((uint)(int)dVar27 >> 8)" (identifier "bVar13") (= "=") (call_expression "(byte)((uint)(int)dVar27 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)(int)dVar27 >> 8)" (( "(") (binary_expression "(uint)(int)dVar27 >> 8" (cast_expression "(uint)(int)dVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(int)dVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar27"))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar17 = (byte)(int)dVar27;" (assignment_expression "bVar17 = (byte)(int)dVar27" (identifier "bVar17") (= "=") (cast_expression "(byte)(int)dVar27" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(int)dVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar27")))) (; ";")) (} "}")) (else_clause "else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" (else "else") (compound_statement "{\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" ({ "{") (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" (identifier "bVar17") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" (identifier "bVar13") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (expression_statement "bVar12 = bVar17;" (assignment_expression "bVar12 = bVar17" (identifier "bVar12") (= "=") (identifier "bVar17")) (; ";")) (expression_statement "bVar14 = bVar13;" (assignment_expression "bVar14 = bVar13" (identifier "bVar14") (= "=") (identifier "bVar13")) (; ";")) (if_statement "if (param_2[0x11] == 1) goto LAB_00165d84;" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00165d84;" (goto "goto") (statement_identifier "LAB_00165d84") (; ";"))) (labeled_statement "LAB_00165b70:\n        *param_6 = bVar13;" (statement_identifier "LAB_00165b70") (: ":") (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar13")) (; ";"))) (expression_statement "param_6[1] = bVar17;" (assignment_expression "param_6[1] = bVar17" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (} "}")))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }" (if "if") (parenthesized_expression "(fVar33 <= 0.0)" (( "(") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165be4;\nLAB_00165d64:\n        param_6[2] = bVar12;\n        param_6[3] = bVar14;\n      }" ({ "{") (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (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")) (; ";")) (if_statement "if (param_2[0x11] != 1) goto LAB_00165be4;" (if "if") (parenthesized_expression "(param_2[0x11] != 1)" (( "(") (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_00165be4;" (goto "goto") (statement_identifier "LAB_00165be4") (; ";"))) (labeled_statement "LAB_00165d64:\n        param_6[2] = bVar12;" (statement_identifier "LAB_00165d64") (: ":") (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] = bVar14;" (assignment_expression "param_6[3] = bVar14" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (} "}")) (else_clause "else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }" (else "else") (compound_statement "{\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d64;\nLAB_00165be4:\n        param_6[2] = bVar13;\n        param_6[3] = bVar17;\n      }" ({ "{") (if_statement "if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" (if "if") (parenthesized_expression "(fVar33 < fVar31)" (( "(") (binary_expression "fVar33 < fVar31" (identifier "fVar33") (< "<") (identifier "fVar31")) () ")")) (compound_statement "{\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }" ({ "{") (expression_statement "dVar27 = (double)fVar33 + dVar26;" (assignment_expression "dVar27 = (double)fVar33 + dVar26" (identifier "dVar27") (= "=") (binary_expression "(double)fVar33 + dVar26" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (+ "+") (identifier "dVar26"))) (; ";")) (if_statement "if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }" (if "if") (parenthesized_expression "(dVar25 <= dVar27)" (( "(") (binary_expression "dVar25 <= dVar27" (identifier "dVar25") (<= "<=") (identifier "dVar27")) () ")")) (compound_statement "{\n            dVar27 = dVar27 - dVar25;\n          }" ({ "{") (expression_statement "dVar27 = dVar27 - dVar25;" (assignment_expression "dVar27 = dVar27 - dVar25" (identifier "dVar27") (= "=") (binary_expression "dVar27 - dVar25" (identifier "dVar27") (- "-") (identifier "dVar25"))) (; ";")) (} "}"))) (expression_statement "bVar13 = (byte)((uint)(int)dVar27 >> 8);" (assignment_expression "bVar13 = (byte)((uint)(int)dVar27 >> 8)" (identifier "bVar13") (= "=") (call_expression "(byte)((uint)(int)dVar27 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)(int)dVar27 >> 8)" (( "(") (binary_expression "(uint)(int)dVar27 >> 8" (cast_expression "(uint)(int)dVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(int)dVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar27"))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar17 = (byte)(int)dVar27;" (assignment_expression "bVar17 = (byte)(int)dVar27" (identifier "bVar17") (= "=") (cast_expression "(byte)(int)dVar27" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(int)dVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar27")))) (; ";")) (} "}")) (else_clause "else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" (else "else") (compound_statement "{\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" ({ "{") (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" (identifier "bVar17") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" (identifier "bVar13") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (expression_statement "bVar12 = bVar17;" (assignment_expression "bVar12 = bVar17" (identifier "bVar12") (= "=") (identifier "bVar17")) (; ";")) (expression_statement "bVar14 = bVar13;" (assignment_expression "bVar14 = bVar13" (identifier "bVar14") (= "=") (identifier "bVar13")) (; ";")) (if_statement "if (param_2[0x11] == 1) goto LAB_00165d64;" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00165d64;" (goto "goto") (statement_identifier "LAB_00165d64") (; ";"))) (labeled_statement "LAB_00165be4:\n        param_6[2] = bVar13;" (statement_identifier "LAB_00165be4") (: ":") (expression_statement "param_6[2] = bVar13;" (assignment_expression "param_6[2] = bVar13" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar13")) (; ";"))) (expression_statement "param_6[3] = bVar17;" (assignment_expression "param_6[3] = bVar17" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (} "}")))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar33 <= 0.0) {\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }\n      else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }" (if "if") (parenthesized_expression "(fVar33 <= 0.0)" (( "(") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n        bVar17 = 0;\n        bVar13 = 0;\n        bVar12 = 0;\n        bVar14 = 0;\n        if (param_2[0x11] != 1) goto LAB_00165c5c;\nLAB_00165d44:\n        param_6[4] = bVar12;\n        param_6[5] = bVar14;\n      }" ({ "{") (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (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")) (; ";")) (if_statement "if (param_2[0x11] != 1) goto LAB_00165c5c;" (if "if") (parenthesized_expression "(param_2[0x11] != 1)" (( "(") (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_00165c5c;" (goto "goto") (statement_identifier "LAB_00165c5c") (; ";"))) (labeled_statement "LAB_00165d44:\n        param_6[4] = bVar12;" (statement_identifier "LAB_00165d44") (: ":") (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] = bVar14;" (assignment_expression "param_6[5] = bVar14" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (} "}")) (else_clause "else {\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }" (else "else") (compound_statement "{\n        if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }\n        bVar12 = bVar17;\n        bVar14 = bVar13;\n        if (param_2[0x11] == 1) goto LAB_00165d44;\nLAB_00165c5c:\n        param_6[4] = bVar13;\n        param_6[5] = bVar17;\n      }" ({ "{") (if_statement "if (fVar33 < fVar31) {\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }\n        else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" (if "if") (parenthesized_expression "(fVar33 < fVar31)" (( "(") (binary_expression "fVar33 < fVar31" (identifier "fVar33") (< "<") (identifier "fVar31")) () ")")) (compound_statement "{\n          dVar27 = (double)fVar33 + dVar26;\n          if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }\n          bVar13 = (byte)((uint)(int)dVar27 >> 8);\n          bVar17 = (byte)(int)dVar27;\n        }" ({ "{") (expression_statement "dVar27 = (double)fVar33 + dVar26;" (assignment_expression "dVar27 = (double)fVar33 + dVar26" (identifier "dVar27") (= "=") (binary_expression "(double)fVar33 + dVar26" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (+ "+") (identifier "dVar26"))) (; ";")) (if_statement "if (dVar25 <= dVar27) {\n            dVar27 = dVar27 - dVar25;\n          }" (if "if") (parenthesized_expression "(dVar25 <= dVar27)" (( "(") (binary_expression "dVar25 <= dVar27" (identifier "dVar25") (<= "<=") (identifier "dVar27")) () ")")) (compound_statement "{\n            dVar27 = dVar27 - dVar25;\n          }" ({ "{") (expression_statement "dVar27 = dVar27 - dVar25;" (assignment_expression "dVar27 = dVar27 - dVar25" (identifier "dVar27") (= "=") (binary_expression "dVar27 - dVar25" (identifier "dVar27") (- "-") (identifier "dVar25"))) (; ";")) (} "}"))) (expression_statement "bVar13 = (byte)((uint)(int)dVar27 >> 8);" (assignment_expression "bVar13 = (byte)((uint)(int)dVar27 >> 8)" (identifier "bVar13") (= "=") (call_expression "(byte)((uint)(int)dVar27 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)(int)dVar27 >> 8)" (( "(") (binary_expression "(uint)(int)dVar27 >> 8" (cast_expression "(uint)(int)dVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(int)dVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar27"))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar17 = (byte)(int)dVar27;" (assignment_expression "bVar17 = (byte)(int)dVar27" (identifier "bVar17") (= "=") (cast_expression "(byte)(int)dVar27" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(int)dVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar27")))) (; ";")) (} "}")) (else_clause "else {\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" (else "else") (compound_statement "{\n          bVar17 = 0xff;\n          bVar13 = 0xff;\n        }" ({ "{") (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" (identifier "bVar17") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" (identifier "bVar13") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (expression_statement "bVar12 = bVar17;" (assignment_expression "bVar12 = bVar17" (identifier "bVar12") (= "=") (identifier "bVar17")) (; ";")) (expression_statement "bVar14 = bVar13;" (assignment_expression "bVar14 = bVar13" (identifier "bVar14") (= "=") (identifier "bVar13")) (; ";")) (if_statement "if (param_2[0x11] == 1) goto LAB_00165d44;" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00165d44;" (goto "goto") (statement_identifier "LAB_00165d44") (; ";"))) (labeled_statement "LAB_00165c5c:\n        param_6[4] = bVar13;" (statement_identifier "LAB_00165c5c") (: ":") (expression_statement "param_6[4] = bVar13;" (assignment_expression "param_6[4] = bVar13" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar13")) (; ";"))) (expression_statement "param_6[5] = bVar17;" (assignment_expression "param_6[5] = bVar17" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (} "}")))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)) {\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }\n      else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0)" (( "(") (comma_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n         fVar33 <= 0.0" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (identifier "fVar33") (= "=") (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (identifier "fVar31") (- "-") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (, ",") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0"))) () ")"))) () ")")) (compound_statement "{\n        bVar13 = 0;\n        bVar12 = 0;\nLAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;\nLAB_00165d24:\n        param_6[6] = bVar13;\n        param_6[7] = bVar12;\n      }" ({ "{") (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00165c80:\n        if (param_2[0x11] != 1) goto LAB_00165c8c;" (statement_identifier "LAB_00165c80") (: ":") (if_statement "if (param_2[0x11] != 1) goto LAB_00165c8c;" (if "if") (parenthesized_expression "(param_2[0x11] != 1)" (( "(") (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_00165c8c;" (goto "goto") (statement_identifier "LAB_00165c8c") (; ";")))) (labeled_statement "LAB_00165d24:\n        param_6[6] = bVar13;" (statement_identifier "LAB_00165d24") (: ":") (expression_statement "param_6[6] = bVar13;" (assignment_expression "param_6[6] = bVar13" (subscript_expression "param_6[6]" (identifier "param_6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar13")) (; ";"))) (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")) (; ";")) (} "}")) (else_clause "else {\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }" (else "else") (compound_statement "{\n        if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }\n        dVar27 = (double)fVar33 + dVar26;\n        if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }\n        bVar12 = (byte)((ushort)uVar5 >> 8);\n        bVar13 = (byte)uVar5;\n        if (param_2[0x11] == 1) goto LAB_00165d24;\nLAB_00165c8c:\n        param_6[6] = bVar12;\n        param_6[7] = bVar13;\n      }" ({ "{") (if_statement "if (fVar31 <= fVar33) {\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }" (if "if") (parenthesized_expression "(fVar31 <= fVar33)" (( "(") (binary_expression "fVar31 <= fVar33" (identifier "fVar31") (<= "<=") (identifier "fVar33")) () ")")) (compound_statement "{\n          bVar13 = 0xff;\n          bVar12 = 0xff;\n          goto LAB_00165c80;\n        }" ({ "{") (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" (identifier "bVar13") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" (identifier "bVar12") (= "=") (number_literal "0xff")) (; ";")) (goto_statement "goto LAB_00165c80;" (goto "goto") (statement_identifier "LAB_00165c80") (; ";")) (} "}"))) (expression_statement "dVar27 = (double)fVar33 + dVar26;" (assignment_expression "dVar27 = (double)fVar33 + dVar26" (identifier "dVar27") (= "=") (binary_expression "(double)fVar33 + dVar26" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (+ "+") (identifier "dVar26"))) (; ";")) (if_statement "if (dVar27 < dVar25) {\n          uVar5 = (undefined2)(int)dVar27;\n        }\n        else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }" (if "if") (parenthesized_expression "(dVar27 < dVar25)" (( "(") (binary_expression "dVar27 < dVar25" (identifier "dVar27") (< "<") (identifier "dVar25")) () ")")) (compound_statement "{\n          uVar5 = (undefined2)(int)dVar27;\n        }" ({ "{") (expression_statement "uVar5 = (undefined2)(int)dVar27;" (assignment_expression "uVar5 = (undefined2)(int)dVar27" (identifier "uVar5") (= "=") (cast_expression "(undefined2)(int)dVar27" (( "(") (type_descriptor "undefined2" (type_identifier "undefined2")) () ")") (cast_expression "(int)dVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar27")))) (; ";")) (} "}")) (else_clause "else {\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }" (else "else") (compound_statement "{\n          uVar5 = (undefined2)(int)(dVar27 - dVar25);\n        }" ({ "{") (expression_statement "uVar5 = (undefined2)(int)(dVar27 - dVar25);" (assignment_expression "uVar5 = (undefined2)(int)(dVar27 - dVar25)" (identifier "uVar5") (= "=") (call_expression "(undefined2)(int)(dVar27 - dVar25)" (call_expression "(undefined2)(int)" (parenthesized_expression "(undefined2)" (( "(") (identifier "undefined2") () ")")) (argument_list "(int)" (( "(") (identifier "int") () ")"))) (argument_list "(dVar27 - dVar25)" (( "(") (binary_expression "dVar27 - dVar25" (identifier "dVar27") (- "-") (identifier "dVar25")) () ")")))) (; ";")) (} "}")))) (expression_statement "bVar12 = (byte)((ushort)uVar5 >> 8);" (assignment_expression "bVar12 = (byte)((ushort)uVar5 >> 8)" (identifier "bVar12") (= "=") (call_expression "(byte)((ushort)uVar5 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar5 >> 8)" (( "(") (binary_expression "(ushort)uVar5 >> 8" (cast_expression "(ushort)uVar5" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar5")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)uVar5;" (assignment_expression "bVar13 = (byte)uVar5" (identifier "bVar13") (= "=") (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5"))) (; ";")) (if_statement "if (param_2[0x11] == 1) goto LAB_00165d24;" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00165d24;" (goto "goto") (statement_identifier "LAB_00165d24") (; ";"))) (labeled_statement "LAB_00165c8c:\n        param_6[6] = bVar12;" (statement_identifier "LAB_00165c8c") (: ":") (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] = bVar13;" (assignment_expression "param_6[7] = bVar13" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (} "}")))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_6 = param_6 + param_2[10] + 8;" (assignment_expression "param_6 = param_6 + param_2[10] + 8" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[10] + 8" (binary_expression "param_6 + param_2[10]" (identifier "param_6") (+ "+") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]"))) (+ "+") (number_literal "8"))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" (* "*") (cast_expression "(int *)(param_1 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c0)" (( "(") (binary_expression "param_1 + 0x2c0" (identifier "param_1") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (if_statement "if (iVar22 == param_4) {\n        return;\n      }" (if "if") (parenthesized_expression "(iVar22 == param_4)" (( "(") (binary_expression "iVar22 == param_4" (identifier "iVar22") (== "==") (identifier "param_4")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (if_statement "if (uVar21 < 0x11) {\n    if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }\n  else {\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(uVar21 < 0x11)" (( "(") (binary_expression "uVar21 < 0x11" (identifier "uVar21") (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n    if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n    if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }\nLAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }\n  }" ({ "{") (if_statement "if (uVar21 == 8) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }" (if "if") (parenthesized_expression "(uVar21 == 8)" (( "(") (binary_expression "uVar21 == 8" (identifier "uVar21") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }" ({ "{") (if_statement "if (param_4 < 1) {\n        return;\n      }" (if "if") (parenthesized_expression "(param_4 < 1)" (( "(") (binary_expression "param_4 < 1" (identifier "param_4") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);" (assignment_expression "dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" (identifier "dVar26") (= "=") (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" (* "*") (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5af0")) () ")"))))) (; ";")) (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" (identifier "dVar27") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1410" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1410")) () ")"))))) (; ";")) (expression_statement "dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);" (assignment_expression "dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" (identifier "dVar25") (= "=") (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" (* "*") (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5ae8")) () ")"))))) (; ";")) (expression_statement "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" (identifier "dVar28") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1400" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" (identifier "fVar31") (= "=") (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" (* "*") (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a50" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a50")) () ")"))))) (; ";")) (do_statement "do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);" (do "do") (compound_statement "{\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        *param_6 = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[1] = bVar13;\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[2] = bVar13;\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }\n        param_6[3] = bVar13;\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 4;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      }" ({ "{") (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" (if "if") (parenthesized_expression "(fVar33 <= 0.0)" (( "(") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n          bVar13 = 0;\n        }" ({ "{") (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" (else "else") (compound_statement "{\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" ({ "{") (expression_statement "dVar29 = (double)fVar33 / dVar26;" (assignment_expression "dVar29 = (double)fVar33 / dVar26" (identifier "dVar29") (= "=") (binary_expression "(double)fVar33 / dVar26" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (/ "/") (identifier "dVar26"))) (; ";")) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }" (if "if") (parenthesized_expression "(dVar29 < dVar25)" (( "(") (binary_expression "dVar29 < dVar25" (identifier "dVar29") (< "<") (identifier "dVar25")) () ")")) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }" ({ "{") (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" (identifier "dVar29") (= "=") (binary_expression "dVar29 + dVar28" (identifier "dVar29") (+ "+") (identifier "dVar28"))) (; ";")) (if_statement "if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" (if "if") (parenthesized_expression "(dVar29 < dVar27)" (( "(") (binary_expression "dVar29 < dVar27" (identifier "dVar29") (< "<") (identifier "dVar27")) () ")")) (compound_statement "{\n              bVar13 = (byte)(int)dVar29;\n            }" ({ "{") (expression_statement "bVar13 = (byte)(int)dVar29;" (assignment_expression "bVar13 = (byte)(int)dVar29" (identifier "bVar13") (= "=") (cast_expression "(byte)(int)dVar29" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(int)dVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar29")))) (; ";")) (} "}")) (else_clause "else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" (else "else") (compound_statement "{\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" ({ "{") (expression_statement "bVar13 = (byte)(int)(dVar29 - dVar27);" (assignment_expression "bVar13 = (byte)(int)(dVar29 - dVar27)" (identifier "bVar13") (= "=") (call_expression "(byte)(int)(dVar29 - dVar27)" (call_expression "(byte)(int)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(int)" (( "(") (identifier "int") () ")"))) (argument_list "(dVar29 - dVar27)" (( "(") (binary_expression "dVar29 - dVar27" (identifier "dVar29") (- "-") (identifier "dVar27")) () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            bVar13 = 0xff;\n          }" (else "else") (compound_statement "{\n            bVar13 = 0xff;\n          }" ({ "{") (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" (identifier "bVar13") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")))) (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" (if "if") (parenthesized_expression "(fVar33 <= 0.0)" (( "(") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n          bVar13 = 0;\n        }" ({ "{") (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" (else "else") (compound_statement "{\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" ({ "{") (expression_statement "dVar29 = (double)fVar33 / dVar26;" (assignment_expression "dVar29 = (double)fVar33 / dVar26" (identifier "dVar29") (= "=") (binary_expression "(double)fVar33 / dVar26" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (/ "/") (identifier "dVar26"))) (; ";")) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }" (if "if") (parenthesized_expression "(dVar29 < dVar25)" (( "(") (binary_expression "dVar29 < dVar25" (identifier "dVar29") (< "<") (identifier "dVar25")) () ")")) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }" ({ "{") (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" (identifier "dVar29") (= "=") (binary_expression "dVar29 + dVar28" (identifier "dVar29") (+ "+") (identifier "dVar28"))) (; ";")) (if_statement "if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" (if "if") (parenthesized_expression "(dVar29 < dVar27)" (( "(") (binary_expression "dVar29 < dVar27" (identifier "dVar29") (< "<") (identifier "dVar27")) () ")")) (compound_statement "{\n              bVar13 = (byte)(int)dVar29;\n            }" ({ "{") (expression_statement "bVar13 = (byte)(int)dVar29;" (assignment_expression "bVar13 = (byte)(int)dVar29" (identifier "bVar13") (= "=") (cast_expression "(byte)(int)dVar29" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(int)dVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar29")))) (; ";")) (} "}")) (else_clause "else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" (else "else") (compound_statement "{\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" ({ "{") (expression_statement "bVar13 = (byte)(int)(dVar29 - dVar27);" (assignment_expression "bVar13 = (byte)(int)(dVar29 - dVar27)" (identifier "bVar13") (= "=") (call_expression "(byte)(int)(dVar29 - dVar27)" (call_expression "(byte)(int)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(int)" (( "(") (identifier "int") () ")"))) (argument_list "(dVar29 - dVar27)" (( "(") (binary_expression "dVar29 - dVar27" (identifier "dVar29") (- "-") (identifier "dVar27")) () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            bVar13 = 0xff;\n          }" (else "else") (compound_statement "{\n            bVar13 = 0xff;\n          }" ({ "{") (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" (identifier "bVar13") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")))) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar33 <= 0.0) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" (if "if") (parenthesized_expression "(fVar33 <= 0.0)" (( "(") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n          bVar13 = 0;\n        }" ({ "{") (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" (else "else") (compound_statement "{\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" ({ "{") (expression_statement "dVar29 = (double)fVar33 / dVar26;" (assignment_expression "dVar29 = (double)fVar33 / dVar26" (identifier "dVar29") (= "=") (binary_expression "(double)fVar33 / dVar26" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (/ "/") (identifier "dVar26"))) (; ";")) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }" (if "if") (parenthesized_expression "(dVar29 < dVar25)" (( "(") (binary_expression "dVar29 < dVar25" (identifier "dVar29") (< "<") (identifier "dVar25")) () ")")) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }\n          }" ({ "{") (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" (identifier "dVar29") (= "=") (binary_expression "dVar29 + dVar28" (identifier "dVar29") (+ "+") (identifier "dVar28"))) (; ";")) (if_statement "if (dVar29 < dVar27) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" (if "if") (parenthesized_expression "(dVar29 < dVar27)" (( "(") (binary_expression "dVar29 < dVar27" (identifier "dVar29") (< "<") (identifier "dVar27")) () ")")) (compound_statement "{\n              bVar13 = (byte)(int)dVar29;\n            }" ({ "{") (expression_statement "bVar13 = (byte)(int)dVar29;" (assignment_expression "bVar13 = (byte)(int)dVar29" (identifier "bVar13") (= "=") (cast_expression "(byte)(int)dVar29" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(int)dVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar29")))) (; ";")) (} "}")) (else_clause "else {\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" (else "else") (compound_statement "{\n              bVar13 = (byte)(int)(dVar29 - dVar27);\n            }" ({ "{") (expression_statement "bVar13 = (byte)(int)(dVar29 - dVar27);" (assignment_expression "bVar13 = (byte)(int)(dVar29 - dVar27)" (identifier "bVar13") (= "=") (call_expression "(byte)(int)(dVar29 - dVar27)" (call_expression "(byte)(int)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(int)" (( "(") (identifier "int") () ")"))) (argument_list "(dVar29 - dVar27)" (( "(") (binary_expression "dVar29 - dVar27" (identifier "dVar29") (- "-") (identifier "dVar27")) () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            bVar13 = 0xff;\n          }" (else "else") (compound_statement "{\n            bVar13 = 0xff;\n          }" ({ "{") (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" (identifier "bVar13") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")))) (expression_statement "param_6[2] = bVar13;" (assignment_expression "param_6[2] = bVar13" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar13 = 0;\n        }\n        else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)" (( "(") (comma_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (identifier "fVar33") (= "=") (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (identifier "fVar31") (- "-") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (, ",") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0"))) () ")"))) () ")")) (compound_statement "{\n          bVar13 = 0;\n        }" ({ "{") (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" (else "else") (compound_statement "{\n          dVar29 = (double)fVar33 / dVar26;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }\n        }" ({ "{") (expression_statement "dVar29 = (double)fVar33 / dVar26;" (assignment_expression "dVar29 = (double)fVar33 / dVar26" (identifier "dVar29") (= "=") (binary_expression "(double)fVar33 / dVar26" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (/ "/") (identifier "dVar26"))) (; ";")) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }\n          else {\n            bVar13 = 0xff;\n          }" (if "if") (parenthesized_expression "(dVar29 < dVar25)" (( "(") (binary_expression "dVar29 < dVar25" (identifier "dVar29") (< "<") (identifier "dVar25")) () ")")) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }\n          }" ({ "{") (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" (identifier "dVar29") (= "=") (binary_expression "dVar29 + dVar28" (identifier "dVar29") (+ "+") (identifier "dVar28"))) (; ";")) (if_statement "if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n              bVar13 = (byte)(int)dVar29;\n            }\n            else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }" (if "if") (parenthesized_expression "(dVar29 < *(double *)(puVar2 + 0x1410))" (( "(") (binary_expression "dVar29 < *(double *)(puVar2 + 0x1410)" (identifier "dVar29") (< "<") (pointer_expression "*(double *)(puVar2 + 0x1410)" (* "*") (cast_expression "(double *)(puVar2 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1410)" (( "(") (binary_expression "puVar2 + 0x1410" (identifier "puVar2") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n              bVar13 = (byte)(int)dVar29;\n            }" ({ "{") (expression_statement "bVar13 = (byte)(int)dVar29;" (assignment_expression "bVar13 = (byte)(int)dVar29" (identifier "bVar13") (= "=") (cast_expression "(byte)(int)dVar29" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(int)dVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar29")))) (; ";")) (} "}")) (else_clause "else {\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }" (else "else") (compound_statement "{\n              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));\n            }" ({ "{") (expression_statement "bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));" (assignment_expression "bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410))" (identifier "bVar13") (= "=") (call_expression "(byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410))" (call_expression "(byte)(int)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(int)" (( "(") (identifier "int") () ")"))) (argument_list "(dVar29 - *(double *)(puVar2 + 0x1410))" (( "(") (binary_expression "dVar29 - *(double *)(puVar2 + 0x1410)" (identifier "dVar29") (- "-") (pointer_expression "*(double *)(puVar2 + 0x1410)" (* "*") (cast_expression "(double *)(puVar2 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1410)" (( "(") (binary_expression "puVar2 + 0x1410" (identifier "puVar2") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            bVar13 = 0xff;\n          }" (else "else") (compound_statement "{\n            bVar13 = 0xff;\n          }" ({ "{") (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" (identifier "bVar13") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (} "}")))) (expression_statement "param_6[3] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_6 = param_6 + param_2[10] + 4;" (assignment_expression "param_6 = param_6 + param_2[10] + 4" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[10] + 4" (binary_expression "param_6 + param_2[10]" (identifier "param_6") (+ "+") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]"))) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" (* "*") (cast_expression "(int *)(param_1 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c0)" (( "(") (binary_expression "param_1 + 0x2c0" (identifier "param_1") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar22 != param_4)" (( "(") (binary_expression "iVar22 != param_4" (identifier "iVar22") (!= "!=") (identifier "param_4")) () ")")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (uVar21 == 10) {\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }" (if "if") (parenthesized_expression "(uVar21 == 10)" (( "(") (binary_expression "uVar21 == 10" (identifier "uVar21") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n      if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }\n      if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      uVar21 = 10;\n      dVar25 = dVar37;\n      dVar26 = dVar38;\n      dVar27 = dVar40;\n      dVar28 = dVar41;\n      dVar29 = dVar40;\n      dVar39 = dVar38;\n      do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );\n    }" ({ "{") (if_statement "if (param_2[0xc] == 0) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }" (if "if") (parenthesized_expression "(param_2[0xc] == 0)" (( "(") (binary_expression "param_2[0xc] == 0" (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        uVar21 = 0;\n        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );\n      }" ({ "{") (if_statement "if (param_4 < 1) {\n          return;\n        }" (if "if") (parenthesized_expression "(param_4 < 1)" (( "(") (binary_expression "param_4 < 1" (identifier "param_4") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar25") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1418" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1418")) () ")"))))) (; ";")) (expression_statement "uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);" (assignment_expression "uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0)" (identifier "uVar34") (= "=") (binary_expression "(ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_t_to_left_003a88e4 + -0x51e0)" (( "(") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x51e0" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x51e0")) () ")"))))) (; ";")) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" (identifier "fVar31") (= "=") (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" (* "*") (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a50" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a50")) () ")"))))) (; ";")) (expression_statement "dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);" (assignment_expression "dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538)" (identifier "dVar26") (= "=") (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x7538)" (* "*") (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x7538)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0x7538)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0x7538" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x7538")) () ")"))))) (; ";")) (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" (identifier "dVar27") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a58" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a58")) () ")"))))) (; ";")) (expression_statement "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" (identifier "dVar28") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a60" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a60")) () ")"))))) (; ";")) (expression_statement "dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" (identifier "dVar29") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1400" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (do_statement "do {\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        } while( true );" (do "do") (compound_statement "{\n          iVar24 = 0;\n          dVar40 = *(double *)(puVar4 + -0x7538);\n          dVar42 = *(double *)(puVar2 + 0x1418);\n          dVar38 = *(double *)(puVar2 + 0x1a58);\n          dVar37 = *(double *)(puVar2 + 0x1a60);\n          dVar41 = *(double *)(puVar2 + 0x1400);\n          dVar39 = dVar42;\n          do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);\n          iVar22 = iVar22 + 4;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          param_6 = param_6 + param_2[10];\n          if (iVar22 == param_4 << 2) {\n            return;\n          }\n        }" ({ "{") (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar40 = *(double *)(puVar4 + -0x7538);" (assignment_expression "dVar40 = *(double *)(puVar4 + -0x7538)" (identifier "dVar40") (= "=") (pointer_expression "*(double *)(puVar4 + -0x7538)" (* "*") (cast_expression "(double *)(puVar4 + -0x7538)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + -0x7538)" (( "(") (binary_expression "puVar4 + -0x7538" (identifier "puVar4") (+ "+") (number_literal "-0x7538")) () ")"))))) (; ";")) (expression_statement "dVar42 = *(double *)(puVar2 + 0x1418);" (assignment_expression "dVar42 = *(double *)(puVar2 + 0x1418)" (identifier "dVar42") (= "=") (pointer_expression "*(double *)(puVar2 + 0x1418)" (* "*") (cast_expression "(double *)(puVar2 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1418)" (( "(") (binary_expression "puVar2 + 0x1418" (identifier "puVar2") (+ "+") (number_literal "0x1418")) () ")"))))) (; ";")) (expression_statement "dVar38 = *(double *)(puVar2 + 0x1a58);" (assignment_expression "dVar38 = *(double *)(puVar2 + 0x1a58)" (identifier "dVar38") (= "=") (pointer_expression "*(double *)(puVar2 + 0x1a58)" (* "*") (cast_expression "(double *)(puVar2 + 0x1a58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1a58)" (( "(") (binary_expression "puVar2 + 0x1a58" (identifier "puVar2") (+ "+") (number_literal "0x1a58")) () ")"))))) (; ";")) (expression_statement "dVar37 = *(double *)(puVar2 + 0x1a60);" (assignment_expression "dVar37 = *(double *)(puVar2 + 0x1a60)" (identifier "dVar37") (= "=") (pointer_expression "*(double *)(puVar2 + 0x1a60)" (* "*") (cast_expression "(double *)(puVar2 + 0x1a60)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1a60)" (( "(") (binary_expression "puVar2 + 0x1a60" (identifier "puVar2") (+ "+") (number_literal "0x1a60")) () ")"))))) (; ";")) (expression_statement "dVar41 = *(double *)(puVar2 + 0x1400);" (assignment_expression "dVar41 = *(double *)(puVar2 + 0x1400)" (identifier "dVar41") (= "=") (pointer_expression "*(double *)(puVar2 + 0x1400)" (* "*") (cast_expression "(double *)(puVar2 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1400)" (( "(") (binary_expression "puVar2 + 0x1400" (identifier "puVar2") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "dVar39 = dVar42;" (assignment_expression "dVar39 = dVar42" (identifier "dVar39") (= "=") (identifier "dVar42")) (; ";")) (do_statement "do {\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          } while (iVar24 != 4);" (do "do") (compound_statement "{\n            iVar7 = *(int *)(param_1 + 0x2d0);\n            if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }\n            uVar8 = (uint)(iVar24 + iVar22) % 3;\n            if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }\n            iVar24 = iVar24 + 1;\n          }" ({ "{") (expression_statement "iVar7 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x2d0)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (if_statement "if (iVar24 == 2) {\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }\n            else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }" (if "if") (parenthesized_expression "(iVar24 == 2)" (( "(") (binary_expression "iVar24 == 2" (identifier "iVar24") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);\n              if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }\n              dVar30 = (double)(int)uVar8;\n              if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }\nLAB_00164eec:\n              fVar33 = (float)dVar30;\n            }" ({ "{") (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar7 + 0x20) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar7 + 0x20) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar7 + 0x20) * 4" (pointer_expression "*(int *)(iVar7 + 0x20)" (* "*") (cast_expression "(int *)(iVar7 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x20)" (( "(") (binary_expression "iVar7 + 0x20" (identifier "iVar7") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar33 < (float)uVar34) {\n                uVar8 = (uint)fVar33;\n              }\n              else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }" (if "if") (parenthesized_expression "(fVar33 < (float)uVar34)" (( "(") (binary_expression "fVar33 < (float)uVar34" (identifier "fVar33") (< "<") (cast_expression "(float)uVar34" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar34"))) () ")")) (compound_statement "{\n                uVar8 = (uint)fVar33;\n              }" ({ "{") (expression_statement "uVar8 = (uint)fVar33;" (assignment_expression "uVar8 = (uint)fVar33" (identifier "uVar8") (= "=") (cast_expression "(uint)fVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar33"))) (; ";")) (} "}")) (else_clause "else {\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }" (else "else") (compound_statement "{\n                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;\n              }" ({ "{") (expression_statement "uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;" (assignment_expression "uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000" (identifier "uVar8") (= "=") (binary_expression "(int)(fVar33 - (float)uVar34) | 0x80000000" (cast_expression "(int)(fVar33 - (float)uVar34)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(fVar33 - (float)uVar34)" (( "(") (binary_expression "fVar33 - (float)uVar34" (identifier "fVar33") (- "-") (cast_expression "(float)uVar34" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar34"))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "dVar30 = (double)(int)uVar8;" (assignment_expression "dVar30 = (double)(int)uVar8" (identifier "dVar30") (= "=") (cast_expression "(double)(int)uVar8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")))) (; ";")) (if_statement "if ((int)uVar8 < 0) {\n                dVar30 = dVar30 + dVar25;\n              }" (if "if") (parenthesized_expression "((int)uVar8 < 0)" (( "(") (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                dVar30 = dVar30 + dVar25;\n              }" ({ "{") (expression_statement "dVar30 = dVar30 + dVar25;" (assignment_expression "dVar30 = dVar30 + dVar25" (identifier "dVar30") (= "=") (binary_expression "dVar30 + dVar25" (identifier "dVar30") (+ "+") (identifier "dVar25"))) (; ";")) (} "}"))) (labeled_statement "LAB_00164eec:\n              fVar33 = (float)dVar30;" (statement_identifier "LAB_00164eec") (: ":") (expression_statement "fVar33 = (float)dVar30;" (assignment_expression "fVar33 = (float)dVar30" (identifier "fVar33") (= "=") (cast_expression "(float)dVar30" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar30"))) (; ";"))) (} "}")) (else_clause "else {\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }" (else "else") (compound_statement "{\n              if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }\n              fVar33 = 0.0;\n              if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }\n            }" ({ "{") (if_statement "if (iVar24 != 3) {\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }" (if "if") (parenthesized_expression "(iVar24 != 3)" (( "(") (binary_expression "iVar24 != 3" (identifier "iVar24") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n                fVar33 = *(float *)(puVar3 + -0x51e0);\n                if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                goto LAB_00164eec;\n              }" ({ "{") (expression_statement "fVar33 = *(float *)(puVar3 + -0x51e0);" (assignment_expression "fVar33 = *(float *)(puVar3 + -0x51e0)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(puVar3 + -0x51e0)" (* "*") (cast_expression "(float *)(puVar3 + -0x51e0)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x51e0)" (( "(") (binary_expression "puVar3 + -0x51e0" (identifier "puVar3") (+ "+") (number_literal "-0x51e0")) () ")"))))) (; ";")) (if_statement "if (iVar24 == 1) {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }\n                else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }" (if "if") (parenthesized_expression "(iVar24 == 1)" (( "(") (binary_expression "iVar24 == 1" (identifier "iVar24") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }" ({ "{") (expression_statement "fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);" (assignment_expression "fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4)" (identifier "fVar32") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar7 + 0x14) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar7 + 0x14) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar7 + 0x14) * 4" (pointer_expression "*(int *)(iVar7 + 0x14)" (* "*") (cast_expression "(int *)(iVar7 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" (if "if") (parenthesized_expression "(fVar32 < fVar33)" (( "(") (binary_expression "fVar32 < fVar33" (identifier "fVar32") (< "<") (identifier "fVar33")) () ")")) (compound_statement "{\n                    uVar8 = (uint)fVar32;\n                  }" ({ "{") (expression_statement "uVar8 = (uint)fVar32;" (assignment_expression "uVar8 = (uint)fVar32" (identifier "uVar8") (= "=") (cast_expression "(uint)fVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar32"))) (; ";")) (} "}")) (else_clause "else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" (else "else") (compound_statement "{\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" ({ "{") (expression_statement "uVar8 = (int)(fVar32 - fVar33) | 0x80000000;" (assignment_expression "uVar8 = (int)(fVar32 - fVar33) | 0x80000000" (identifier "uVar8") (= "=") (binary_expression "(int)(fVar32 - fVar33) | 0x80000000" (cast_expression "(int)(fVar32 - fVar33)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(fVar32 - fVar33)" (( "(") (binary_expression "fVar32 - fVar33" (identifier "fVar32") (- "-") (identifier "fVar33")) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "dVar30 = (double)(int)uVar8;" (assignment_expression "dVar30 = (double)(int)uVar8" (identifier "dVar30") (= "=") (cast_expression "(double)(int)uVar8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")))) (; ";")) (if_statement "if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }" (if "if") (parenthesized_expression "((int)uVar8 < 0)" (( "(") (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    dVar30 = dVar30 + dVar42;\n                  }" ({ "{") (expression_statement "dVar30 = dVar30 + dVar42;" (assignment_expression "dVar30 = dVar30 + dVar42" (identifier "dVar30") (= "=") (binary_expression "dVar30 + dVar42" (identifier "dVar30") (+ "+") (identifier "dVar42"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }" (else "else") (compound_statement "{\n                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);\n                  if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }\n                  dVar30 = (double)(int)uVar8;\n                  if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }\n                }" ({ "{") (expression_statement "fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);" (assignment_expression "fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4)" (identifier "fVar32") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar7 + 8) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar7 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar7 + 8) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar7 + 8) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar7 + 8) * 4" (pointer_expression "*(int *)(iVar7 + 8)" (* "*") (cast_expression "(int *)(iVar7 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar32 < fVar33) {\n                    uVar8 = (uint)fVar32;\n                  }\n                  else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" (if "if") (parenthesized_expression "(fVar32 < fVar33)" (( "(") (binary_expression "fVar32 < fVar33" (identifier "fVar32") (< "<") (identifier "fVar33")) () ")")) (compound_statement "{\n                    uVar8 = (uint)fVar32;\n                  }" ({ "{") (expression_statement "uVar8 = (uint)fVar32;" (assignment_expression "uVar8 = (uint)fVar32" (identifier "uVar8") (= "=") (cast_expression "(uint)fVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar32"))) (; ";")) (} "}")) (else_clause "else {\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" (else "else") (compound_statement "{\n                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;\n                  }" ({ "{") (expression_statement "uVar8 = (int)(fVar32 - fVar33) | 0x80000000;" (assignment_expression "uVar8 = (int)(fVar32 - fVar33) | 0x80000000" (identifier "uVar8") (= "=") (binary_expression "(int)(fVar32 - fVar33) | 0x80000000" (cast_expression "(int)(fVar32 - fVar33)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(fVar32 - fVar33)" (( "(") (binary_expression "fVar32 - fVar33" (identifier "fVar32") (- "-") (identifier "fVar33")) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "dVar30 = (double)(int)uVar8;" (assignment_expression "dVar30 = (double)(int)uVar8" (identifier "dVar30") (= "=") (cast_expression "(double)(int)uVar8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")))) (; ";")) (if_statement "if ((int)uVar8 < 0) {\n                    dVar30 = dVar30 + dVar42;\n                  }" (if "if") (parenthesized_expression "((int)uVar8 < 0)" (( "(") (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    dVar30 = dVar30 + dVar42;\n                  }" ({ "{") (expression_statement "dVar30 = dVar30 + dVar42;" (assignment_expression "dVar30 = dVar30 + dVar42" (identifier "dVar30") (= "=") (binary_expression "dVar30 + dVar42" (identifier "dVar30") (+ "+") (identifier "dVar42"))) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_00164eec;" (goto "goto") (statement_identifier "LAB_00164eec") (; ";")) (} "}"))) (expression_statement "fVar33 = 0.0;" (assignment_expression "fVar33 = 0.0" (identifier "fVar33") (= "=") (number_literal "0.0")) (; ";")) (if_statement "if (*(int *)(iVar7 + 0x34) == 4) {\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x34) == 4)" (( "(") (binary_expression "*(int *)(iVar7 + 0x34) == 4" (pointer_expression "*(int *)(iVar7 + 0x34)" (* "*") (cast_expression "(int *)(iVar7 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x34)" (( "(") (binary_expression "iVar7 + 0x34" (identifier "iVar7") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n                fVar32 = *(float *)(puVar3 + -0x51e0);\n                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);\n                if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }\n                dVar30 = (double)(int)uVar8;\n                if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }\n                goto LAB_00164eec;\n              }" ({ "{") (expression_statement "fVar32 = *(float *)(puVar3 + -0x51e0);" (assignment_expression "fVar32 = *(float *)(puVar3 + -0x51e0)" (identifier "fVar32") (= "=") (pointer_expression "*(float *)(puVar3 + -0x51e0)" (* "*") (cast_expression "(float *)(puVar3 + -0x51e0)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x51e0)" (( "(") (binary_expression "puVar3 + -0x51e0" (identifier "puVar3") (+ "+") (number_literal "-0x51e0")) () ")"))))) (; ";")) (expression_statement "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4)" (identifier "fVar33") (= "=") (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4)" (identifier "fVar31") (- "-") (pointer_expression "*(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar7 + 0x38) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar7 + 0x38) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar7 + 0x38) * 4" (pointer_expression "*(int *)(iVar7 + 0x38)" (* "*") (cast_expression "(int *)(iVar7 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x38)" (( "(") (binary_expression "iVar7 + 0x38" (identifier "iVar7") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (if_statement "if (fVar33 < fVar32) {\n                  uVar8 = (uint)fVar33;\n                }\n                else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }" (if "if") (parenthesized_expression "(fVar33 < fVar32)" (( "(") (binary_expression "fVar33 < fVar32" (identifier "fVar33") (< "<") (identifier "fVar32")) () ")")) (compound_statement "{\n                  uVar8 = (uint)fVar33;\n                }" ({ "{") (expression_statement "uVar8 = (uint)fVar33;" (assignment_expression "uVar8 = (uint)fVar33" (identifier "uVar8") (= "=") (cast_expression "(uint)fVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar33"))) (; ";")) (} "}")) (else_clause "else {\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }" (else "else") (compound_statement "{\n                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;\n                }" ({ "{") (expression_statement "uVar8 = (int)(fVar33 - fVar32) | 0x80000000;" (assignment_expression "uVar8 = (int)(fVar33 - fVar32) | 0x80000000" (identifier "uVar8") (= "=") (binary_expression "(int)(fVar33 - fVar32) | 0x80000000" (cast_expression "(int)(fVar33 - fVar32)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(fVar33 - fVar32)" (( "(") (binary_expression "fVar33 - fVar32" (identifier "fVar33") (- "-") (identifier "fVar32")) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "dVar30 = (double)(int)uVar8;" (assignment_expression "dVar30 = (double)(int)uVar8" (identifier "dVar30") (= "=") (cast_expression "(double)(int)uVar8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")))) (; ";")) (if_statement "if ((int)uVar8 < 0) {\n                  dVar30 = dVar30 + dVar39;\n                }" (if "if") (parenthesized_expression "((int)uVar8 < 0)" (( "(") (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  dVar30 = dVar30 + dVar39;\n                }" ({ "{") (expression_statement "dVar30 = dVar30 + dVar39;" (assignment_expression "dVar30 = dVar30 + dVar39" (identifier "dVar30") (= "=") (binary_expression "dVar30 + dVar39" (identifier "dVar30") (+ "+") (identifier "dVar39"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00164eec;" (goto "goto") (statement_identifier "LAB_00164eec") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar8 = (uint)(iVar24 + iVar22) % 3;" (assignment_expression "uVar8 = (uint)(iVar24 + iVar22) % 3" (identifier "uVar8") (= "=") (binary_expression "(uint)(iVar24 + iVar22) % 3" (call_expression "(uint)(iVar24 + iVar22)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar24 + iVar22)" (( "(") (binary_expression "iVar24 + iVar22" (identifier "iVar24") (+ "+") (identifier "iVar22")) () ")"))) (% "%") (number_literal "3"))) (; ";")) (if_statement "if (uVar8 == 1) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }\n            else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" (if "if") (parenthesized_expression "(uVar8 == 1)" (( "(") (binary_expression "uVar8 == 1" (identifier "uVar8") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }\n            }" ({ "{") (if_statement "if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < fVar33)" (( "(") (binary_expression "0.0 < fVar33" (number_literal "0.0") (< "<") (identifier "fVar33")) () ")")) (compound_statement "{\n                dVar30 = ((double)fVar33 * dVar26) / dVar27;\n                if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }\n              }" ({ "{") (expression_statement "dVar30 = ((double)fVar33 * dVar26) / dVar27;" (assignment_expression "dVar30 = ((double)fVar33 * dVar26) / dVar27" (identifier "dVar30") (= "=") (binary_expression "((double)fVar33 * dVar26) / dVar27" (parenthesized_expression "((double)fVar33 * dVar26)" (( "(") (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (identifier "dVar26")) () ")")) (/ "/") (identifier "dVar27"))) (; ";")) (if_statement "if (dVar30 < dVar28) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }\n                else {\n                  uVar21 = 0xfffff000;\n                }" (if "if") (parenthesized_expression "(dVar30 < dVar28)" (( "(") (binary_expression "dVar30 < dVar28" (identifier "dVar30") (< "<") (identifier "dVar28")) () ")")) (compound_statement "{\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);\n                  uVar21 = uVar21 | extraout_v1_01 << 0xc;\n                }" ({ "{") (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar30 + dVar29)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar30 + dVar29)" (( "(") (binary_expression "dVar30 + dVar29" (identifier "dVar30") (+ "+") (identifier "dVar29")) () ")"))) (; ";")) (expression_statement "uVar21 = uVar21 | extraout_v1_01 << 0xc;" (assignment_expression "uVar21 = uVar21 | extraout_v1_01 << 0xc" (identifier "uVar21") (= "=") (binary_expression "uVar21 | extraout_v1_01 << 0xc" (identifier "uVar21") (| "|") (binary_expression "extraout_v1_01 << 0xc" (identifier "extraout_v1_01") (<< "<<") (number_literal "0xc")))) (; ";")) (} "}")) (else_clause "else {\n                  uVar21 = 0xfffff000;\n                }" (else "else") (compound_statement "{\n                  uVar21 = 0xfffff000;\n                }" ({ "{") (expression_statement "uVar21 = 0xfffff000;" (assignment_expression "uVar21 = 0xfffff000" (identifier "uVar21") (= "=") (number_literal "0xfffff000")) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" (else "else") (if_statement "if (uVar8 == 2) {\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }\n            else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" (if "if") (parenthesized_expression "(uVar8 == 2)" (( "(") (binary_expression "uVar8 == 2" (identifier "uVar8") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }\n              bVar13 = (byte)uVar21;\n              bVar17 = (byte)(uVar21 >> 0x18);\n              bVar14 = (byte)(uVar21 >> 0x10);\n              bVar12 = (byte)(uVar21 >> 8);\n              if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }\n            }" ({ "{") (if_statement "if (0.0 < fVar33) {\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < fVar33)" (( "(") (binary_expression "0.0 < fVar33" (number_literal "0.0") (< "<") (identifier "fVar33")) () ")")) (compound_statement "{\n                dVar30 = ((double)fVar33 * dVar40) / dVar38;\n                if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }\n              }" ({ "{") (expression_statement "dVar30 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar30 = ((double)fVar33 * dVar40) / dVar38" (identifier "dVar30") (= "=") (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" (( "(") (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (identifier "dVar40")) () ")")) (/ "/") (identifier "dVar38"))) (; ";")) (if_statement "if (dVar30 < dVar37) {\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }\n                else {\n                  uVar21 = 0xfffffffc;\n                }" (if "if") (parenthesized_expression "(dVar30 < dVar37)" (( "(") (binary_expression "dVar30 < dVar37" (identifier "dVar30") (< "<") (identifier "dVar37")) () ")")) (compound_statement "{\n                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);\n                  uVar21 = uVar21 | extraout_v1 << 2;\n                }" ({ "{") (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar30 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar30 + dVar41)" (( "(") (binary_expression "dVar30 + dVar41" (identifier "dVar30") (+ "+") (identifier "dVar41")) () ")"))) (; ";")) (expression_statement "uVar21 = uVar21 | extraout_v1 << 2;" (assignment_expression "uVar21 = uVar21 | extraout_v1 << 2" (identifier "uVar21") (= "=") (binary_expression "uVar21 | extraout_v1 << 2" (identifier "uVar21") (| "|") (binary_expression "extraout_v1 << 2" (identifier "extraout_v1") (<< "<<") (number_literal "2")))) (; ";")) (} "}")) (else_clause "else {\n                  uVar21 = 0xfffffffc;\n                }" (else "else") (compound_statement "{\n                  uVar21 = 0xfffffffc;\n                }" ({ "{") (expression_statement "uVar21 = 0xfffffffc;" (assignment_expression "uVar21 = 0xfffffffc" (identifier "uVar21") (= "=") (number_literal "0xfffffffc")) (; ";")) (} "}")))) (} "}"))) (expression_statement "bVar13 = (byte)uVar21;" (assignment_expression "bVar13 = (byte)uVar21" (identifier "bVar13") (= "=") (cast_expression "(byte)uVar21" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar21"))) (; ";")) (expression_statement "bVar17 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar17 = (byte)(uVar21 >> 0x18)" (identifier "bVar17") (= "=") (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 0x18)" (( "(") (binary_expression "uVar21 >> 0x18" (identifier "uVar21") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar14 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar14 = (byte)(uVar21 >> 0x10)" (identifier "bVar14") (= "=") (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 0x10)" (( "(") (binary_expression "uVar21 >> 0x10" (identifier "uVar21") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" (identifier "bVar12") (= "=") (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 8)" (( "(") (binary_expression "uVar21 >> 8" (identifier "uVar21") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == 1) {\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }\n              else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_6 = bVar13;\n                uVar21 = 0;\n                param_6[1] = bVar12;\n                param_6[2] = bVar14;\n                param_6[3] = bVar17;\n                param_6 = param_6 + 4;\n              }" ({ "{") (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (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[2] = bVar14;" (assignment_expression "param_6[2] = bVar14" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "param_6[3] = bVar17;" (assignment_expression "param_6[3] = bVar17" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (expression_statement "param_6 = param_6 + 4;" (assignment_expression "param_6 = param_6 + 4" (identifier "param_6") (= "=") (binary_expression "param_6 + 4" (identifier "param_6") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (else_clause "else {\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }" (else "else") (compound_statement "{\n                uVar21 = 0;\n                *param_6 = bVar17;\n                param_6[1] = bVar14;\n                param_6[2] = bVar12;\n                param_6[3] = bVar13;\n                param_6 = param_6 + 4;\n              }" ({ "{") (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_6 = bVar17;" (assignment_expression "*param_6 = bVar17" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar17")) (; ";")) (expression_statement "param_6[1] = bVar14;" (assignment_expression "param_6[1] = bVar14" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (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] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "param_6 = param_6 + 4;" (assignment_expression "param_6 = param_6 + 4" (identifier "param_6") (= "=") (binary_expression "param_6 + 4" (identifier "param_6") (+ "+") (number_literal "4"))) (; ";")) (} "}")))) (} "}")) (else_clause "else if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" (else "else") (if_statement "if (0.0 < fVar33) {\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" (if "if") (parenthesized_expression "(0.0 < fVar33)" (( "(") (binary_expression "0.0 < fVar33" (number_literal "0.0") (< "<") (identifier "fVar33")) () ")")) (compound_statement "{\n              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);\n              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }\n            }" ({ "{") (expression_statement "dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58);" (assignment_expression "dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58)" (identifier "dVar30") (= "=") (binary_expression "((double)fVar33 * *(double *)(puVar4 + -0x7538)) /\n                       *(double *)(puVar2 + 0x1a58)" (parenthesized_expression "((double)fVar33 * *(double *)(puVar4 + -0x7538))" (( "(") (binary_expression "(double)fVar33 * *(double *)(puVar4 + -0x7538)" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (pointer_expression "*(double *)(puVar4 + -0x7538)" (* "*") (cast_expression "(double *)(puVar4 + -0x7538)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + -0x7538)" (( "(") (binary_expression "puVar4 + -0x7538" (identifier "puVar4") (+ "+") (number_literal "-0x7538")) () ")"))))) () ")")) (/ "/") (pointer_expression "*(double *)(puVar2 + 0x1a58)" (* "*") (cast_expression "(double *)(puVar2 + 0x1a58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1a58)" (( "(") (binary_expression "puVar2 + 0x1a58" (identifier "puVar2") (+ "+") (number_literal "0x1a58")) () ")")))))) (; ";")) (if_statement "if (dVar30 < *(double *)(puVar2 + 0x1a60)) {\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }\n              else {\n                uVar21 = uVar21 | 0xffc00000;\n              }" (if "if") (parenthesized_expression "(dVar30 < *(double *)(puVar2 + 0x1a60))" (( "(") (binary_expression "dVar30 < *(double *)(puVar2 + 0x1a60)" (identifier "dVar30") (< "<") (pointer_expression "*(double *)(puVar2 + 0x1a60)" (* "*") (cast_expression "(double *)(puVar2 + 0x1a60)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1a60)" (( "(") (binary_expression "puVar2 + 0x1a60" (identifier "puVar2") (+ "+") (number_literal "0x1a60")) () ")"))))) () ")")) (compound_statement "{\n                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));\n                uVar21 = uVar21 | extraout_v1_00 << 0x16;\n              }" ({ "{") (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400))" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar30 + *(double *)(puVar2 + 0x1400))" (( "(") (binary_expression "dVar30 + *(double *)(puVar2 + 0x1400)" (identifier "dVar30") (+ "+") (pointer_expression "*(double *)(puVar2 + 0x1400)" (* "*") (cast_expression "(double *)(puVar2 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1400)" (( "(") (binary_expression "puVar2 + 0x1400" (identifier "puVar2") (+ "+") (number_literal "0x1400")) () ")"))))) () ")"))) (; ";")) (expression_statement "uVar21 = uVar21 | extraout_v1_00 << 0x16;" (assignment_expression "uVar21 = uVar21 | extraout_v1_00 << 0x16" (identifier "uVar21") (= "=") (binary_expression "uVar21 | extraout_v1_00 << 0x16" (identifier "uVar21") (| "|") (binary_expression "extraout_v1_00 << 0x16" (identifier "extraout_v1_00") (<< "<<") (number_literal "0x16")))) (; ";")) (} "}")) (else_clause "else {\n                uVar21 = uVar21 | 0xffc00000;\n              }" (else "else") (compound_statement "{\n                uVar21 = uVar21 | 0xffc00000;\n              }" ({ "{") (expression_statement "uVar21 = uVar21 | 0xffc00000;" (assignment_expression "uVar21 = uVar21 | 0xffc00000" (identifier "uVar21") (= "=") (binary_expression "uVar21 | 0xffc00000" (identifier "uVar21") (| "|") (number_literal "0xffc00000"))) (; ";")) (} "}")))) (} "}"))))))) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 != 4)" (( "(") (binary_expression "iVar24 != 4" (identifier "iVar24") (!= "!=") (number_literal "4")) () ")")) (; ";")) (expression_statement "iVar22 = iVar22 + 4;" (assignment_expression "iVar22 = iVar22 + 4" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 4" (identifier "iVar22") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" (* "*") (cast_expression "(int *)(param_1 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c0)" (( "(") (binary_expression "param_1 + 0x2c0" (identifier "param_1") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (expression_statement "param_6 = param_6 + param_2[10];" (assignment_expression "param_6 = param_6 + param_2[10]" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[10]" (identifier "param_6") (+ "+") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")))) (; ";")) (if_statement "if (iVar22 == param_4 << 2) {\n            return;\n          }" (if "if") (parenthesized_expression "(iVar22 == param_4 << 2)" (( "(") (binary_expression "iVar22 == param_4 << 2" (identifier "iVar22") (== "==") (binary_expression "param_4 << 2" (identifier "param_4") (<< "<<") (number_literal "2"))) () ")")) (compound_statement "{\n            return;\n          }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (if_statement "if (param_2[1] == 0x20) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }" (if "if") (parenthesized_expression "(param_2[1] == 0x20)" (( "(") (binary_expression "param_2[1] == 0x20" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);\n        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);\n        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        uVar21 = 10;\n        dVar25 = dVar37;\n        dVar26 = dVar38;\n        dVar27 = dVar40;\n        dVar28 = dVar41;\n        dVar29 = dVar40;\n        dVar39 = dVar38;\n        while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }\n        return;\n      }" ({ "{") (if_statement "if (param_4 < 1) {\n          return;\n        }" (if "if") (parenthesized_expression "(param_4 < 1)" (( "(") (binary_expression "param_4 < 1" (identifier "param_4") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);" (assignment_expression "dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538)" (identifier "dVar40") (= "=") (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x7538)" (* "*") (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x7538)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0x7538)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0x7538" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x7538")) () ")"))))) (; ";")) (expression_statement "dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" (identifier "dVar41") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1400" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" (identifier "dVar38") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a58" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a58")) () ")"))))) (; ";")) (expression_statement "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" (identifier "dVar37") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a60" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a60")) () ")"))))) (; ";")) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" (identifier "fVar31") (= "=") (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" (* "*") (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a50" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a50")) () ")"))))) (; ";")) (expression_statement "uVar21 = 10;" (assignment_expression "uVar21 = 10" (identifier "uVar21") (= "=") (number_literal "10")) (; ";")) (expression_statement "dVar25 = dVar37;" (assignment_expression "dVar25 = dVar37" (identifier "dVar25") (= "=") (identifier "dVar37")) (; ";")) (expression_statement "dVar26 = dVar38;" (assignment_expression "dVar26 = dVar38" (identifier "dVar26") (= "=") (identifier "dVar38")) (; ";")) (expression_statement "dVar27 = dVar40;" (assignment_expression "dVar27 = dVar40" (identifier "dVar27") (= "=") (identifier "dVar40")) (; ";")) (expression_statement "dVar28 = dVar41;" (assignment_expression "dVar28 = dVar41" (identifier "dVar28") (= "=") (identifier "dVar41")) (; ";")) (expression_statement "dVar29 = dVar40;" (assignment_expression "dVar29 = dVar40" (identifier "dVar29") (= "=") (identifier "dVar40")) (; ";")) (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" (identifier "dVar39") (= "=") (identifier "dVar38")) (; ";")) (while_statement "while( true ) {\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n          if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }\n          uVar23 = param_2[0x15];\n          if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }\n          if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          bVar1 = uVar23 < uVar21;\n          uVar9 = uVar21;\n          param_6 = pbVar11;\n          if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }\n          if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          uVar23 = uVar21;\n          pbVar11 = param_6;\n          if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10];\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n          if (iVar22 == param_4) break;\n          uVar21 = *param_2;\n        }" ({ "{") (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 8) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 8) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 8) * 4" (pointer_expression "*(int *)(iVar24 + 8)" (* "*") (cast_expression "(int *)(iVar24 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 8)" (( "(") (binary_expression "iVar24 + 8" (identifier "iVar24") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (NAN(fVar33)) {\n            uVar8 = 0;\n          }\n          else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(NAN(fVar33))" (( "(") (call_expression "NAN(fVar33)" (identifier "NAN") (argument_list "(fVar33)" (( "(") (identifier "fVar33") () ")"))) () ")")) (compound_statement "{\n            uVar8 = 0;\n          }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }" (else "else") (compound_statement "{\n            uVar8 = 0;\n            if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }\n          }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < fVar33) {\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }" (if "if") (parenthesized_expression "(0.0 < fVar33)" (( "(") (binary_expression "0.0 < fVar33" (number_literal "0.0") (< "<") (identifier "fVar33")) () ")")) (compound_statement "{\n              dVar42 = ((double)fVar33 * dVar27) / dVar26;\n              if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }\n            }" ({ "{") (expression_statement "dVar42 = ((double)fVar33 * dVar27) / dVar26;" (assignment_expression "dVar42 = ((double)fVar33 * dVar27) / dVar26" (identifier "dVar42") (= "=") (binary_expression "((double)fVar33 * dVar27) / dVar26" (parenthesized_expression "((double)fVar33 * dVar27)" (( "(") (binary_expression "(double)fVar33 * dVar27" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (identifier "dVar27")) () ")")) (/ "/") (identifier "dVar26"))) (; ";")) (if_statement "if (dVar42 < dVar25) {\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }\n              else {\n                uVar8 = 0xffffffff;\n              }" (if "if") (parenthesized_expression "(dVar42 < dVar25)" (( "(") (binary_expression "dVar42 < dVar25" (identifier "dVar42") (< "<") (identifier "dVar25")) () ")")) (compound_statement "{\n                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n                uVar8 = extraout_v1_06;\n              }" ({ "{") (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar28)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar42 + dVar28)" (( "(") (binary_expression "dVar42 + dVar28" (identifier "dVar42") (+ "+") (identifier "dVar28")) () ")"))) (; ";")) (expression_statement "uVar8 = extraout_v1_06;" (assignment_expression "uVar8 = extraout_v1_06" (identifier "uVar8") (= "=") (identifier "extraout_v1_06")) (; ";")) (} "}")) (else_clause "else {\n                uVar8 = 0xffffffff;\n              }" (else "else") (compound_statement "{\n                uVar8 = 0xffffffff;\n              }" ({ "{") (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" (identifier "uVar8") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (} "}"))) (} "}")))) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" (identifier "uVar23") (= "=") (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (if_statement "if (uVar23 == 0) {\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar23 = 0x20;\n            param_2[0x15] = 0x20;\n          }" ({ "{") (expression_statement "uVar23 = 0x20;" (assignment_expression "uVar23 = 0x20" (identifier "uVar23") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0x20")) (; ";")) (} "}"))) (if_statement "if (0 < (int)uVar21) {\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" (if "if") (parenthesized_expression "(0 < (int)uVar21)" (( "(") (binary_expression "0 < (int)uVar21" (number_literal "0") (< "<") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) () ")")) (compound_statement "{\n            bVar1 = uVar23 < uVar21;\n            uVar9 = uVar21;\n            pbVar11 = param_6;\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" ({ "{") (expression_statement "bVar1 = uVar23 < uVar21;" (assignment_expression "bVar1 = uVar23 < uVar21" (identifier "bVar1") (= "=") (binary_expression "uVar23 < uVar21" (identifier "uVar23") (< "<") (identifier "uVar21"))) (; ";")) (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" (identifier "uVar9") (= "=") (identifier "uVar21")) (; ";")) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" (identifier "pbVar11") (= "=") (identifier "param_6")) (; ";")) (do_statement "do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar9);" (do "do") (compound_statement "{\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar16 = uVar21 - uVar9;\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar9 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];\n              param_2[0x14] = uVar15;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar9;\n              pbVar11 = param_6;\n            }" ({ "{") (expression_statement "uVar15 = uVar23;" (assignment_expression "uVar15 = uVar23" (identifier "uVar15") (= "=") (identifier "uVar23")) (; ";")) (if_statement "if (!bVar1) {\n                uVar15 = uVar9;\n              }" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (compound_statement "{\n                uVar15 = uVar9;\n              }" ({ "{") (expression_statement "uVar15 = uVar9;" (assignment_expression "uVar15 = uVar9" (identifier "uVar15") (= "=") (identifier "uVar9")) (; ";")) (} "}"))) (expression_statement "uVar16 = uVar21 - uVar9;" (assignment_expression "uVar16 = uVar21 - uVar9" (identifier "uVar16") (= "=") (binary_expression "uVar21 - uVar9" (identifier "uVar21") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "uVar10 = 0x20 - uVar23;" (assignment_expression "uVar10 = 0x20 - uVar23" (identifier "uVar10") (= "=") (binary_expression "0x20 - uVar23" (number_literal "0x20") (- "-") (identifier "uVar23"))) (; ";")) (expression_statement "uVar23 = uVar23 - uVar15;" (assignment_expression "uVar23 = uVar23 - uVar15" (identifier "uVar23") (= "=") (binary_expression "uVar23 - uVar15" (identifier "uVar23") (- "-") (identifier "uVar15"))) (; ";")) (expression_statement "uVar9 = uVar9 - uVar15;" (assignment_expression "uVar9 = uVar9 - uVar15" (identifier "uVar9") (= "=") (binary_expression "uVar9 - uVar15" (identifier "uVar9") (- "-") (identifier "uVar15"))) (; ";")) (expression_statement "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);" (assignment_expression "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(param_2[0x16] + uVar15 * 4)" (* "*") (cast_expression "(uint *)(param_2[0x16] + uVar15 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[0x16] + uVar15 * 4)" (( "(") (binary_expression "param_2[0x16] + uVar15 * 4" (subscript_expression "param_2[0x16]" (identifier "param_2") ([ "[") (number_literal "0x16") (] "]")) (+ "+") (binary_expression "uVar15 * 4" (identifier "uVar15") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];" (assignment_expression "uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" (identifier "uVar15") (= "=") (binary_expression "(uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" (binary_expression "(uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f)" (parenthesized_expression "(uVar8 >> (uVar16 & 0x1f) & uVar15)" (( "(") (binary_expression "uVar8 >> (uVar16 & 0x1f) & uVar15" (binary_expression "uVar8 >> (uVar16 & 0x1f)" (identifier "uVar8") (>> ">>") (parenthesized_expression "(uVar16 & 0x1f)" (( "(") (binary_expression "uVar16 & 0x1f" (identifier "uVar16") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (identifier "uVar15")) () ")")) (<< "<<") (parenthesized_expression "(uVar10 & 0x1f)" (( "(") (binary_expression "uVar10 & 0x1f" (identifier "uVar10") (& "&") (number_literal "0x1f")) () ")"))) (| "|") (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")))) (; ";")) (expression_statement "param_2[0x14] = uVar15;" (assignment_expression "param_2[0x14] = uVar15" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" (identifier "param_6") (= "=") (identifier "pbVar11")) (; ";")) (if_statement "if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar15 >> 0x18);\n                bVar12 = (byte)(uVar15 >> 0x10);\n                bVar13 = (byte)(uVar15 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" ({ "{") (expression_statement "param_6 = pbVar11 + 4;" (assignment_expression "param_6 = pbVar11 + 4" (identifier "param_6") (= "=") (binary_expression "pbVar11 + 4" (identifier "pbVar11") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "bVar14 = (byte)(uVar15 >> 0x18);" (assignment_expression "bVar14 = (byte)(uVar15 >> 0x18)" (identifier "bVar14") (= "=") (call_expression "(byte)(uVar15 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar15 >> 0x18)" (( "(") (binary_expression "uVar15 >> 0x18" (identifier "uVar15") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)(uVar15 >> 0x10);" (assignment_expression "bVar12 = (byte)(uVar15 >> 0x10)" (identifier "bVar12") (= "=") (call_expression "(byte)(uVar15 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar15 >> 0x10)" (( "(") (binary_expression "uVar15 >> 0x10" (identifier "uVar15") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)(uVar15 >> 8);" (assignment_expression "bVar13 = (byte)(uVar15 >> 8)" (identifier "bVar13") (= "=") (call_expression "(byte)(uVar15 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar15 >> 8)" (( "(") (binary_expression "uVar15 >> 8" (identifier "uVar15") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  *pbVar11 = (byte)uVar15;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }" ({ "{") (expression_statement "*pbVar11 = (byte)uVar15;" (assignment_expression "*pbVar11 = (byte)uVar15" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (cast_expression "(byte)uVar15" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar15"))) (; ";")) (expression_statement "pbVar11[1] = bVar13;" (assignment_expression "pbVar11[1] = bVar13" (subscript_expression "pbVar11[1]" (identifier "pbVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "pbVar11[2] = bVar12;" (assignment_expression "pbVar11[2] = bVar12" (subscript_expression "pbVar11[2]" (identifier "pbVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "pbVar11[3] = bVar14;" (assignment_expression "pbVar11[3] = bVar14" (subscript_expression "pbVar11[3]" (identifier "pbVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (} "}")) (else_clause "else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }" (else "else") (compound_statement "{\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar15;\n                }" ({ "{") (expression_statement "*pbVar11 = bVar14;" (assignment_expression "*pbVar11 = bVar14" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "pbVar11[1] = bVar12;" (assignment_expression "pbVar11[1] = bVar12" (subscript_expression "pbVar11[1]" (identifier "pbVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "pbVar11[2] = bVar13;" (assignment_expression "pbVar11[2] = bVar13" (subscript_expression "pbVar11[2]" (identifier "pbVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "pbVar11[3] = (byte)uVar15;" (assignment_expression "pbVar11[3] = (byte)uVar15" (subscript_expression "pbVar11[3]" (identifier "pbVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)uVar15" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar15"))) (; ";")) (} "}")))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" (identifier "uVar21") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar23 = 0x20;" (assignment_expression "uVar23 = 0x20" (identifier "uVar23") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "param_2[0x14] = 0;" (assignment_expression "param_2[0x14] = 0" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0x20")) (; ";")) (} "}"))) (expression_statement "bVar1 = uVar23 < uVar9;" (assignment_expression "bVar1 = uVar23 < uVar9" (identifier "bVar1") (= "=") (binary_expression "uVar23 < uVar9" (identifier "uVar23") (< "<") (identifier "uVar9"))) (; ";")) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" (identifier "pbVar11") (= "=") (identifier "param_6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar9)" (( "(") (binary_expression "0 < (int)uVar9" (number_literal "0") (< "<") (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9"))) () ")")) (; ";")) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (} "}"))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" (* "*") (cast_expression "(int *)(iVar24 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x14)" (( "(") (binary_expression "iVar24 + 0x14" (identifier "iVar24") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" (if "if") (parenthesized_expression "(fVar33 <= 0.0)" (( "(") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n            uVar8 = 0;\n          }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" (else "else") (compound_statement "{\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" ({ "{") (expression_statement "dVar42 = ((double)fVar33 * dVar29) / dVar39;" (assignment_expression "dVar42 = ((double)fVar33 * dVar29) / dVar39" (identifier "dVar42") (= "=") (binary_expression "((double)fVar33 * dVar29) / dVar39" (parenthesized_expression "((double)fVar33 * dVar29)" (( "(") (binary_expression "(double)fVar33 * dVar29" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (identifier "dVar29")) () ")")) (/ "/") (identifier "dVar39"))) (; ";")) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" (if "if") (parenthesized_expression "(dVar42 < dVar37)" (( "(") (binary_expression "dVar42 < dVar37" (identifier "dVar42") (< "<") (identifier "dVar37")) () ")")) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_07;\n            }" ({ "{") (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar42 + dVar41)" (( "(") (binary_expression "dVar42 + dVar41" (identifier "dVar42") (+ "+") (identifier "dVar41")) () ")"))) (; ";")) (expression_statement "uVar8 = extraout_v1_07;" (assignment_expression "uVar8 = extraout_v1_07" (identifier "uVar8") (= "=") (identifier "extraout_v1_07")) (; ";")) (} "}")) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" (else "else") (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" ({ "{") (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" (identifier "uVar8") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (} "}")))) (expression_statement "bVar1 = uVar23 < uVar21;" (assignment_expression "bVar1 = uVar23 < uVar21" (identifier "bVar1") (= "=") (binary_expression "uVar23 < uVar21" (identifier "uVar23") (< "<") (identifier "uVar21"))) (; ";")) (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" (identifier "uVar9") (= "=") (identifier "uVar21")) (; ";")) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" (identifier "pbVar11") (= "=") (identifier "param_6")) (; ";")) (if_statement "if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" (if "if") (parenthesized_expression "(0 < (int)uVar21)" (( "(") (binary_expression "0 < (int)uVar21" (number_literal "0") (< "<") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) () ")")) (compound_statement "{\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" ({ "{") (do_statement "do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            } while (0 < (int)uVar16);" (do "do") (compound_statement "{\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              pbVar11 = param_6;\n              if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              param_6 = pbVar11;\n            }" ({ "{") (expression_statement "uVar15 = uVar23;" (assignment_expression "uVar15 = uVar23" (identifier "uVar15") (= "=") (identifier "uVar23")) (; ";")) (if_statement "if (!bVar1) {\n                uVar15 = uVar9;\n              }" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (compound_statement "{\n                uVar15 = uVar9;\n              }" ({ "{") (expression_statement "uVar15 = uVar9;" (assignment_expression "uVar15 = uVar9" (identifier "uVar15") (= "=") (identifier "uVar9")) (; ";")) (} "}"))) (expression_statement "uVar10 = 0x20 - uVar23;" (assignment_expression "uVar10 = 0x20 - uVar23" (identifier "uVar10") (= "=") (binary_expression "0x20 - uVar23" (number_literal "0x20") (- "-") (identifier "uVar23"))) (; ";")) (expression_statement "uVar23 = uVar23 - uVar15;" (assignment_expression "uVar23 = uVar23 - uVar15" (identifier "uVar23") (= "=") (binary_expression "uVar23 - uVar15" (identifier "uVar23") (- "-") (identifier "uVar15"))) (; ";")) (expression_statement "uVar16 = uVar9 - uVar15;" (assignment_expression "uVar16 = uVar9 - uVar15" (identifier "uVar16") (= "=") (binary_expression "uVar9 - uVar15" (identifier "uVar9") (- "-") (identifier "uVar15"))) (; ";")) (expression_statement "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);" (assignment_expression "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(param_2[0x16] + uVar15 * 4)" (* "*") (cast_expression "(uint *)(param_2[0x16] + uVar15 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[0x16] + uVar15 * 4)" (( "(") (binary_expression "param_2[0x16] + uVar15 * 4" (subscript_expression "param_2[0x16]" (identifier "param_2") ([ "[") (number_literal "0x16") (] "]")) (+ "+") (binary_expression "uVar15 * 4" (identifier "uVar15") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;" (assignment_expression "uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" (identifier "uVar9") (= "=") (binary_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" (binary_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f)" (parenthesized_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15)" (( "(") (binary_expression "uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15" (binary_expression "uVar8 >> (uVar21 - uVar9 & 0x1f)" (identifier "uVar8") (>> ">>") (parenthesized_expression "(uVar21 - uVar9 & 0x1f)" (( "(") (binary_expression "uVar21 - uVar9 & 0x1f" (binary_expression "uVar21 - uVar9" (identifier "uVar21") (- "-") (identifier "uVar9")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (identifier "uVar15")) () ")")) (<< "<<") (parenthesized_expression "(uVar10 & 0x1f)" (( "(") (binary_expression "uVar10 & 0x1f" (identifier "uVar10") (& "&") (number_literal "0x1f")) () ")"))) (| "|") (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")))) (; ";")) (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 "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" (identifier "pbVar11") (= "=") (identifier "param_6")) (; ";")) (if_statement "if (uVar23 == 0) {\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                pbVar11 = param_6 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" ({ "{") (expression_statement "pbVar11 = param_6 + 4;" (assignment_expression "pbVar11 = param_6 + 4" (identifier "pbVar11") (= "=") (binary_expression "param_6 + 4" (identifier "param_6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "bVar14 = (byte)(uVar9 >> 0x18);" (assignment_expression "bVar14 = (byte)(uVar9 >> 0x18)" (identifier "bVar14") (= "=") (call_expression "(byte)(uVar9 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar9 >> 0x18)" (( "(") (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)(uVar9 >> 0x10);" (assignment_expression "bVar12 = (byte)(uVar9 >> 0x10)" (identifier "bVar12") (= "=") (call_expression "(byte)(uVar9 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar9 >> 0x10)" (( "(") (binary_expression "uVar9 >> 0x10" (identifier "uVar9") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)(uVar9 >> 8);" (assignment_expression "bVar13 = (byte)(uVar9 >> 8)" (identifier "bVar13") (= "=") (call_expression "(byte)(uVar9 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar9 >> 8)" (( "(") (binary_expression "uVar9 >> 8" (identifier "uVar9") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == 1) {\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }\n                else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  *param_6 = (byte)uVar9;\n                  param_6[1] = bVar13;\n                  param_6[2] = bVar12;\n                  param_6[3] = bVar14;\n                }" ({ "{") (expression_statement "*param_6 = (byte)uVar9;" (assignment_expression "*param_6 = (byte)uVar9" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (cast_expression "(byte)uVar9" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar9"))) (; ";")) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (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] = bVar14;" (assignment_expression "param_6[3] = bVar14" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (} "}")) (else_clause "else {\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }" (else "else") (compound_statement "{\n                  *param_6 = bVar14;\n                  param_6[1] = bVar12;\n                  param_6[2] = bVar13;\n                  param_6[3] = (byte)uVar9;\n                }" ({ "{") (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 "param_6[2] = bVar13;" (assignment_expression "param_6[2] = bVar13" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "param_6[3] = (byte)uVar9;" (assignment_expression "param_6[3] = (byte)uVar9" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)uVar9" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar9"))) (; ";")) (} "}")))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" (identifier "uVar21") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar23 = 0x20;" (assignment_expression "uVar23 = 0x20" (identifier "uVar23") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "param_2[0x14] = 0;" (assignment_expression "param_2[0x14] = 0" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0x20")) (; ";")) (} "}"))) (expression_statement "bVar1 = uVar23 < uVar16;" (assignment_expression "bVar1 = uVar23 < uVar16" (identifier "bVar1") (= "=") (binary_expression "uVar23 < uVar16" (identifier "uVar23") (< "<") (identifier "uVar16"))) (; ";")) (expression_statement "uVar9 = uVar16;" (assignment_expression "uVar9 = uVar16" (identifier "uVar9") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" (identifier "param_6") (= "=") (identifier "pbVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar16)" (( "(") (binary_expression "0 < (int)uVar16" (number_literal "0") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (; ";")) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (} "}"))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" (* "*") (cast_expression "(int *)(iVar24 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x20)" (( "(") (binary_expression "iVar24 + 0x20" (identifier "iVar24") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar33 <= 0.0) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" (if "if") (parenthesized_expression "(fVar33 <= 0.0)" (( "(") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n            uVar8 = 0;\n          }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" (else "else") (compound_statement "{\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" ({ "{") (expression_statement "dVar42 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar42 = ((double)fVar33 * dVar40) / dVar38" (identifier "dVar42") (= "=") (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" (( "(") (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (identifier "dVar40")) () ")")) (/ "/") (identifier "dVar38"))) (; ";")) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" (if "if") (parenthesized_expression "(dVar42 < dVar37)" (( "(") (binary_expression "dVar42 < dVar37" (identifier "dVar42") (< "<") (identifier "dVar37")) () ")")) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_08;\n            }" ({ "{") (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar42 + dVar41)" (( "(") (binary_expression "dVar42 + dVar41" (identifier "dVar42") (+ "+") (identifier "dVar41")) () ")"))) (; ";")) (expression_statement "uVar8 = extraout_v1_08;" (assignment_expression "uVar8 = extraout_v1_08" (identifier "uVar8") (= "=") (identifier "extraout_v1_08")) (; ";")) (} "}")) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" (else "else") (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" ({ "{") (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" (identifier "uVar8") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (} "}")))) (expression_statement "bVar1 = uVar23 < uVar21;" (assignment_expression "bVar1 = uVar23 < uVar21" (identifier "bVar1") (= "=") (binary_expression "uVar23 < uVar21" (identifier "uVar23") (< "<") (identifier "uVar21"))) (; ";")) (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" (identifier "uVar9") (= "=") (identifier "uVar21")) (; ";")) (expression_statement "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" (identifier "param_6") (= "=") (identifier "pbVar11")) (; ";")) (if_statement "if (0 < (int)uVar21) {\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" (if "if") (parenthesized_expression "(0 < (int)uVar21)" (( "(") (binary_expression "0 < (int)uVar21" (number_literal "0") (< "<") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) () ")")) (compound_statement "{\n            do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);\n            iVar24 = *(int *)(param_1 + 0x2d0);\n          }" ({ "{") (do_statement "do {\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            } while (0 < (int)uVar16);" (do "do") (compound_statement "{\n              uVar15 = uVar23;\n              if (!bVar1) {\n                uVar15 = uVar9;\n              }\n              uVar10 = 0x20 - uVar23;\n              uVar23 = uVar23 - uVar15;\n              uVar16 = uVar9 - uVar15;\n              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);\n              param_2[0x15] = uVar23;\n              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;\n              param_2[0x14] = uVar9;\n              param_6 = pbVar11;\n              if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              bVar1 = uVar23 < uVar16;\n              uVar9 = uVar16;\n              pbVar11 = param_6;\n            }" ({ "{") (expression_statement "uVar15 = uVar23;" (assignment_expression "uVar15 = uVar23" (identifier "uVar15") (= "=") (identifier "uVar23")) (; ";")) (if_statement "if (!bVar1) {\n                uVar15 = uVar9;\n              }" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (compound_statement "{\n                uVar15 = uVar9;\n              }" ({ "{") (expression_statement "uVar15 = uVar9;" (assignment_expression "uVar15 = uVar9" (identifier "uVar15") (= "=") (identifier "uVar9")) (; ";")) (} "}"))) (expression_statement "uVar10 = 0x20 - uVar23;" (assignment_expression "uVar10 = 0x20 - uVar23" (identifier "uVar10") (= "=") (binary_expression "0x20 - uVar23" (number_literal "0x20") (- "-") (identifier "uVar23"))) (; ";")) (expression_statement "uVar23 = uVar23 - uVar15;" (assignment_expression "uVar23 = uVar23 - uVar15" (identifier "uVar23") (= "=") (binary_expression "uVar23 - uVar15" (identifier "uVar23") (- "-") (identifier "uVar15"))) (; ";")) (expression_statement "uVar16 = uVar9 - uVar15;" (assignment_expression "uVar16 = uVar9 - uVar15" (identifier "uVar16") (= "=") (binary_expression "uVar9 - uVar15" (identifier "uVar9") (- "-") (identifier "uVar15"))) (; ";")) (expression_statement "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);" (assignment_expression "uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(param_2[0x16] + uVar15 * 4)" (* "*") (cast_expression "(uint *)(param_2[0x16] + uVar15 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[0x16] + uVar15 * 4)" (( "(") (binary_expression "param_2[0x16] + uVar15 * 4" (subscript_expression "param_2[0x16]" (identifier "param_2") ([ "[") (number_literal "0x16") (] "]")) (+ "+") (binary_expression "uVar15 * 4" (identifier "uVar15") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]\n              ;" (assignment_expression "uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" (identifier "uVar9") (= "=") (binary_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]" (binary_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f)" (parenthesized_expression "(uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15)" (( "(") (binary_expression "uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15" (binary_expression "uVar8 >> (uVar21 - uVar9 & 0x1f)" (identifier "uVar8") (>> ">>") (parenthesized_expression "(uVar21 - uVar9 & 0x1f)" (( "(") (binary_expression "uVar21 - uVar9 & 0x1f" (binary_expression "uVar21 - uVar9" (identifier "uVar21") (- "-") (identifier "uVar9")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (identifier "uVar15")) () ")")) (<< "<<") (parenthesized_expression "(uVar10 & 0x1f)" (( "(") (binary_expression "uVar10 & 0x1f" (identifier "uVar10") (& "&") (number_literal "0x1f")) () ")"))) (| "|") (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")))) (; ";")) (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 "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" (identifier "param_6") (= "=") (identifier "pbVar11")) (; ";")) (if_statement "if (uVar23 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar9 >> 0x18);\n                bVar12 = (byte)(uVar9 >> 0x10);\n                bVar13 = (byte)(uVar9 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }\n                uVar21 = *param_2;\n                uVar23 = 0x20;\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" ({ "{") (expression_statement "param_6 = pbVar11 + 4;" (assignment_expression "param_6 = pbVar11 + 4" (identifier "param_6") (= "=") (binary_expression "pbVar11 + 4" (identifier "pbVar11") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "bVar14 = (byte)(uVar9 >> 0x18);" (assignment_expression "bVar14 = (byte)(uVar9 >> 0x18)" (identifier "bVar14") (= "=") (call_expression "(byte)(uVar9 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar9 >> 0x18)" (( "(") (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)(uVar9 >> 0x10);" (assignment_expression "bVar12 = (byte)(uVar9 >> 0x10)" (identifier "bVar12") (= "=") (call_expression "(byte)(uVar9 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar9 >> 0x10)" (( "(") (binary_expression "uVar9 >> 0x10" (identifier "uVar9") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)(uVar9 >> 8);" (assignment_expression "bVar13 = (byte)(uVar9 >> 8)" (identifier "bVar13") (= "=") (call_expression "(byte)(uVar9 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar9 >> 8)" (( "(") (binary_expression "uVar9 >> 8" (identifier "uVar9") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  *pbVar11 = (byte)uVar9;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }" ({ "{") (expression_statement "*pbVar11 = (byte)uVar9;" (assignment_expression "*pbVar11 = (byte)uVar9" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (cast_expression "(byte)uVar9" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar9"))) (; ";")) (expression_statement "pbVar11[1] = bVar13;" (assignment_expression "pbVar11[1] = bVar13" (subscript_expression "pbVar11[1]" (identifier "pbVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "pbVar11[2] = bVar12;" (assignment_expression "pbVar11[2] = bVar12" (subscript_expression "pbVar11[2]" (identifier "pbVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "pbVar11[3] = bVar14;" (assignment_expression "pbVar11[3] = bVar14" (subscript_expression "pbVar11[3]" (identifier "pbVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (} "}")) (else_clause "else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }" (else "else") (compound_statement "{\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar9;\n                }" ({ "{") (expression_statement "*pbVar11 = bVar14;" (assignment_expression "*pbVar11 = bVar14" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "pbVar11[1] = bVar12;" (assignment_expression "pbVar11[1] = bVar12" (subscript_expression "pbVar11[1]" (identifier "pbVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "pbVar11[2] = bVar13;" (assignment_expression "pbVar11[2] = bVar13" (subscript_expression "pbVar11[2]" (identifier "pbVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "pbVar11[3] = (byte)uVar9;" (assignment_expression "pbVar11[3] = (byte)uVar9" (subscript_expression "pbVar11[3]" (identifier "pbVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)uVar9" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar9"))) (; ";")) (} "}")))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" (identifier "uVar21") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar23 = 0x20;" (assignment_expression "uVar23 = 0x20" (identifier "uVar23") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "param_2[0x14] = 0;" (assignment_expression "param_2[0x14] = 0" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0x20")) (; ";")) (} "}"))) (expression_statement "bVar1 = uVar23 < uVar16;" (assignment_expression "bVar1 = uVar23 < uVar16" (identifier "bVar1") (= "=") (binary_expression "uVar23 < uVar16" (identifier "uVar23") (< "<") (identifier "uVar16"))) (; ";")) (expression_statement "uVar9 = uVar16;" (assignment_expression "uVar9 = uVar16" (identifier "uVar9") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" (identifier "pbVar11") (= "=") (identifier "param_6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar16)" (( "(") (binary_expression "0 < (int)uVar16" (number_literal "0") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (; ";")) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (} "}"))) (if_statement "if ((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {\n            uVar8 = 0;\n          }\n          else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" (if "if") (parenthesized_expression "((*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0))" (( "(") (binary_expression "(*(int *)(iVar24 + 0x34) != 4) ||\n             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)" (parenthesized_expression "(*(int *)(iVar24 + 0x34) != 4)" (( "(") (binary_expression "*(int *)(iVar24 + 0x34) != 4" (pointer_expression "*(int *)(iVar24 + 0x34)" (* "*") (cast_expression "(int *)(iVar24 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x34)" (( "(") (binary_expression "iVar24 + 0x34" (identifier "iVar24") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)" (( "(") (comma_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" (identifier "fVar33") (= "=") (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" (identifier "fVar31") (- "-") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x38) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 0x38) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 0x38) * 4" (pointer_expression "*(int *)(iVar24 + 0x38)" (* "*") (cast_expression "(int *)(iVar24 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x38)" (( "(") (binary_expression "iVar24 + 0x38" (identifier "iVar24") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (, ",") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0"))) () ")"))) () ")")) (compound_statement "{\n            uVar8 = 0;\n          }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" (else "else") (compound_statement "{\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" ({ "{") (expression_statement "dVar42 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar42 = ((double)fVar33 * dVar40) / dVar38" (identifier "dVar42") (= "=") (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" (( "(") (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (identifier "dVar40")) () ")")) (/ "/") (identifier "dVar38"))) (; ";")) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" (if "if") (parenthesized_expression "(dVar42 < dVar37)" (( "(") (binary_expression "dVar42 < dVar37" (identifier "dVar42") (< "<") (identifier "dVar37")) () ")")) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar8 = extraout_v1_09;\n            }" ({ "{") (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400))" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar42 + *(double *)(puVar2 + 0x1400))" (( "(") (binary_expression "dVar42 + *(double *)(puVar2 + 0x1400)" (identifier "dVar42") (+ "+") (pointer_expression "*(double *)(puVar2 + 0x1400)" (* "*") (cast_expression "(double *)(puVar2 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1400)" (( "(") (binary_expression "puVar2 + 0x1400" (identifier "puVar2") (+ "+") (number_literal "0x1400")) () ")"))))) () ")"))) (; ";")) (expression_statement "uVar8 = extraout_v1_09;" (assignment_expression "uVar8 = extraout_v1_09" (identifier "uVar8") (= "=") (identifier "extraout_v1_09")) (; ";")) (} "}")) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" (else "else") (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" ({ "{") (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" (identifier "uVar8") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (} "}")))) (expression_statement "uVar23 = uVar21;" (assignment_expression "uVar23 = uVar21" (identifier "uVar23") (= "=") (identifier "uVar21")) (; ";")) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" (identifier "pbVar11") (= "=") (identifier "param_6")) (; ";")) (if_statement "if (0 < (int)uVar21) {\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }" (if "if") (parenthesized_expression "(0 < (int)uVar21)" (( "(") (binary_expression "0 < (int)uVar21" (number_literal "0") (< "<") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) () ")")) (compound_statement "{\n            while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }\n          }" ({ "{") (while_statement "while( true ) {\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              uVar15 = param_2[0x15];\n              uVar9 = uVar15;\n              if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }\n              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);\n              param_2[0x15] = uVar15 - uVar9;\n              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];\n              param_2[0x14] = uVar21;\n              param_6 = pbVar11;\n              if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }\n              if ((int)(uVar23 - uVar9) < 1) break;\n              uVar21 = *param_2;\n              uVar23 = uVar23 - uVar9;\n              pbVar11 = param_6;\n            }" ({ "{") (expression_statement "uVar15 = param_2[0x15];" (assignment_expression "uVar15 = param_2[0x15]" (identifier "uVar15") (= "=") (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (expression_statement "uVar9 = uVar15;" (assignment_expression "uVar9 = uVar15" (identifier "uVar9") (= "=") (identifier "uVar15")) (; ";")) (if_statement "if (uVar23 <= uVar15) {\n                uVar9 = uVar23;\n              }" (if "if") (parenthesized_expression "(uVar23 <= uVar15)" (( "(") (binary_expression "uVar23 <= uVar15" (identifier "uVar23") (<= "<=") (identifier "uVar15")) () ")")) (compound_statement "{\n                uVar9 = uVar23;\n              }" ({ "{") (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" (identifier "uVar9") (= "=") (identifier "uVar23")) (; ";")) (} "}"))) (expression_statement "uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);" (assignment_expression "uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(param_2[0x16] + uVar9 * 4)" (* "*") (cast_expression "(uint *)(param_2[0x16] + uVar9 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[0x16] + uVar9 * 4)" (( "(") (binary_expression "param_2[0x16] + uVar9 * 4" (subscript_expression "param_2[0x16]" (identifier "param_2") ([ "[") (number_literal "0x16") (] "]")) (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "param_2[0x15] = uVar15 - uVar9;" (assignment_expression "param_2[0x15] = uVar15 - uVar9" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (binary_expression "uVar15 - uVar9" (identifier "uVar15") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14];" (assignment_expression "uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14]" (identifier "uVar21") (= "=") (binary_expression "(uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |\n                       param_2[0x14]" (binary_expression "(uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f)" (parenthesized_expression "(uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10)" (( "(") (binary_expression "uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10" (binary_expression "uVar8 >> (uVar21 - uVar23 & 0x1f)" (identifier "uVar8") (>> ">>") (parenthesized_expression "(uVar21 - uVar23 & 0x1f)" (( "(") (binary_expression "uVar21 - uVar23 & 0x1f" (binary_expression "uVar21 - uVar23" (identifier "uVar21") (- "-") (identifier "uVar23")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (identifier "uVar10")) () ")")) (<< "<<") (parenthesized_expression "(0x20 - uVar15 & 0x1f)" (( "(") (binary_expression "0x20 - uVar15 & 0x1f" (binary_expression "0x20 - uVar15" (number_literal "0x20") (- "-") (identifier "uVar15")) (& "&") (number_literal "0x1f")) () ")"))) (| "|") (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")))) (; ";")) (expression_statement "param_2[0x14] = uVar21;" (assignment_expression "param_2[0x14] = uVar21" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar21")) (; ";")) (expression_statement "param_6 = pbVar11;" (assignment_expression "param_6 = pbVar11" (identifier "param_6") (= "=") (identifier "pbVar11")) (; ";")) (if_statement "if (uVar15 - uVar9 == 0) {\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" (if "if") (parenthesized_expression "(uVar15 - uVar9 == 0)" (( "(") (binary_expression "uVar15 - uVar9 == 0" (binary_expression "uVar15 - uVar9" (identifier "uVar15") (- "-") (identifier "uVar9")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                param_6 = pbVar11 + 4;\n                bVar14 = (byte)(uVar21 >> 0x18);\n                bVar12 = (byte)(uVar21 >> 0x10);\n                bVar13 = (byte)(uVar21 >> 8);\n                if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }\n                param_2[0x14] = 0;\n                param_2[0x15] = 0x20;\n              }" ({ "{") (expression_statement "param_6 = pbVar11 + 4;" (assignment_expression "param_6 = pbVar11 + 4" (identifier "param_6") (= "=") (binary_expression "pbVar11 + 4" (identifier "pbVar11") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "bVar14 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar14 = (byte)(uVar21 >> 0x18)" (identifier "bVar14") (= "=") (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 0x18)" (( "(") (binary_expression "uVar21 >> 0x18" (identifier "uVar21") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar12 = (byte)(uVar21 >> 0x10)" (identifier "bVar12") (= "=") (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 0x10)" (( "(") (binary_expression "uVar21 >> 0x10" (identifier "uVar21") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)(uVar21 >> 8);" (assignment_expression "bVar13 = (byte)(uVar21 >> 8)" (identifier "bVar13") (= "=") (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 8)" (( "(") (binary_expression "uVar21 >> 8" (identifier "uVar21") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == 1) {\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }\n                else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  *pbVar11 = (byte)uVar21;\n                  pbVar11[1] = bVar13;\n                  pbVar11[2] = bVar12;\n                  pbVar11[3] = bVar14;\n                }" ({ "{") (expression_statement "*pbVar11 = (byte)uVar21;" (assignment_expression "*pbVar11 = (byte)uVar21" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (cast_expression "(byte)uVar21" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar21"))) (; ";")) (expression_statement "pbVar11[1] = bVar13;" (assignment_expression "pbVar11[1] = bVar13" (subscript_expression "pbVar11[1]" (identifier "pbVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "pbVar11[2] = bVar12;" (assignment_expression "pbVar11[2] = bVar12" (subscript_expression "pbVar11[2]" (identifier "pbVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "pbVar11[3] = bVar14;" (assignment_expression "pbVar11[3] = bVar14" (subscript_expression "pbVar11[3]" (identifier "pbVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (} "}")) (else_clause "else {\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }" (else "else") (compound_statement "{\n                  *pbVar11 = bVar14;\n                  pbVar11[1] = bVar12;\n                  pbVar11[2] = bVar13;\n                  pbVar11[3] = (byte)uVar21;\n                }" ({ "{") (expression_statement "*pbVar11 = bVar14;" (assignment_expression "*pbVar11 = bVar14" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "pbVar11[1] = bVar12;" (assignment_expression "pbVar11[1] = bVar12" (subscript_expression "pbVar11[1]" (identifier "pbVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "pbVar11[2] = bVar13;" (assignment_expression "pbVar11[2] = bVar13" (subscript_expression "pbVar11[2]" (identifier "pbVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "pbVar11[3] = (byte)uVar21;" (assignment_expression "pbVar11[3] = (byte)uVar21" (subscript_expression "pbVar11[3]" (identifier "pbVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)uVar21" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar21"))) (; ";")) (} "}")))) (expression_statement "param_2[0x14] = 0;" (assignment_expression "param_2[0x14] = 0" (subscript_expression "param_2[0x14]" (identifier "param_2") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2[0x15] = 0x20;" (assignment_expression "param_2[0x15] = 0x20" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "0x20")) (; ";")) (} "}"))) (if_statement "if ((int)(uVar23 - uVar9) < 1) break;" (if "if") (parenthesized_expression "((int)(uVar23 - uVar9) < 1)" (( "(") (binary_expression "(int)(uVar23 - uVar9) < 1" (cast_expression "(int)(uVar23 - uVar9)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar23 - uVar9)" (( "(") (binary_expression "uVar23 - uVar9" (identifier "uVar23") (- "-") (identifier "uVar9")) () ")"))) (< "<") (number_literal "1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" (identifier "uVar21") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" (identifier "uVar23") (= "=") (binary_expression "uVar23 - uVar9" (identifier "uVar23") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "pbVar11 = param_6;" (assignment_expression "pbVar11 = param_6" (identifier "pbVar11") (= "=") (identifier "param_6")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_6 = param_6 + param_2[10];" (assignment_expression "param_6 = param_6 + param_2[10]" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[10]" (identifier "param_6") (+ "+") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" (* "*") (cast_expression "(int *)(param_1 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c0)" (( "(") (binary_expression "param_1 + 0x2c0" (identifier "param_1") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (if_statement "if (iVar22 == param_4) break;" (if "if") (parenthesized_expression "(iVar22 == param_4)" (( "(") (binary_expression "iVar22 == param_4" (identifier "iVar22") (== "==") (identifier "param_4")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" (identifier "uVar21") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (param_4 < 1) {\n        return;\n      }" (if "if") (parenthesized_expression "(param_4 < 1)" (( "(") (binary_expression "param_4 < 1" (identifier "param_4") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);" (assignment_expression "dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538)" (identifier "dVar40") (= "=") (pointer_expression "*(double *)(PTR_s_courses_003a88ec + -0x7538)" (* "*") (cast_expression "(double *)(PTR_s_courses_003a88ec + -0x7538)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_courses_003a88ec + -0x7538)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0x7538" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x7538")) () ")"))))) (; ";")) (expression_statement "dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" (identifier "dVar41") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1400" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" (identifier "dVar38") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a58" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a58")) () ")"))))) (; ";")) (expression_statement "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" (identifier "dVar37") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a60" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a60")) () ")"))))) (; ";")) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" (identifier "fVar31") (= "=") (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" (* "*") (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a50" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a50")) () ")"))))) (; ";")) (expression_statement "uVar21 = 10;" (assignment_expression "uVar21 = 10" (identifier "uVar21") (= "=") (number_literal "10")) (; ";")) (expression_statement "dVar25 = dVar37;" (assignment_expression "dVar25 = dVar37" (identifier "dVar25") (= "=") (identifier "dVar37")) (; ";")) (expression_statement "dVar26 = dVar38;" (assignment_expression "dVar26 = dVar38" (identifier "dVar26") (= "=") (identifier "dVar38")) (; ";")) (expression_statement "dVar27 = dVar40;" (assignment_expression "dVar27 = dVar40" (identifier "dVar27") (= "=") (identifier "dVar40")) (; ";")) (expression_statement "dVar28 = dVar41;" (assignment_expression "dVar28 = dVar41" (identifier "dVar28") (= "=") (identifier "dVar41")) (; ";")) (expression_statement "dVar29 = dVar40;" (assignment_expression "dVar29 = dVar40" (identifier "dVar29") (= "=") (identifier "dVar40")) (; ";")) (expression_statement "dVar39 = dVar38;" (assignment_expression "dVar39 = dVar38" (identifier "dVar39") (= "=") (identifier "dVar38")) (; ";")) (do_statement "do {\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      } while( true );" (do "do") (compound_statement "{\n        iVar24 = *(int *)(param_1 + 0x2d0);\n        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n        if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }\n        uVar23 = param_2[0x15];\n        if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }\n        if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }\n        while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10];\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n        uVar21 = *param_2;\n      }" ({ "{") (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 8) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 8) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 8) * 4" (pointer_expression "*(int *)(iVar24 + 8)" (* "*") (cast_expression "(int *)(iVar24 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 8)" (( "(") (binary_expression "iVar24 + 8" (identifier "iVar24") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (NAN(fVar33)) {\n          uVar8 = 0;\n        }\n        else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(NAN(fVar33))" (( "(") (call_expression "NAN(fVar33)" (identifier "NAN") (argument_list "(fVar33)" (( "(") (identifier "fVar33") () ")"))) () ")")) (compound_statement "{\n          uVar8 = 0;\n        }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          uVar8 = 0;\n          if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n        }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < fVar33) {\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" (if "if") (parenthesized_expression "(0.0 < fVar33)" (( "(") (binary_expression "0.0 < fVar33" (number_literal "0.0") (< "<") (identifier "fVar33")) () ")")) (compound_statement "{\n            dVar42 = ((double)fVar33 * dVar27) / dVar26;\n            if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" ({ "{") (expression_statement "dVar42 = ((double)fVar33 * dVar27) / dVar26;" (assignment_expression "dVar42 = ((double)fVar33 * dVar27) / dVar26" (identifier "dVar42") (= "=") (binary_expression "((double)fVar33 * dVar27) / dVar26" (parenthesized_expression "((double)fVar33 * dVar27)" (( "(") (binary_expression "(double)fVar33 * dVar27" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (identifier "dVar27")) () ")")) (/ "/") (identifier "dVar26"))) (; ";")) (if_statement "if (dVar42 < dVar25) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" (if "if") (parenthesized_expression "(dVar42 < dVar25)" (( "(") (binary_expression "dVar42 < dVar25" (identifier "dVar42") (< "<") (identifier "dVar25")) () ")")) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);\n              uVar8 = extraout_v1_02;\n            }" ({ "{") (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar28)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar42 + dVar28)" (( "(") (binary_expression "dVar42 + dVar28" (identifier "dVar42") (+ "+") (identifier "dVar28")) () ")"))) (; ";")) (expression_statement "uVar8 = extraout_v1_02;" (assignment_expression "uVar8 = extraout_v1_02" (identifier "uVar8") (= "=") (identifier "extraout_v1_02")) (; ";")) (} "}")) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" (else "else") (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" ({ "{") (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" (identifier "uVar8") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (} "}"))) (} "}")))) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" (identifier "uVar23") (= "=") (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (if_statement "if (uVar23 == 0) {\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar23 = 8;\n          param_2[0x15] = 8;\n        }" ({ "{") (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" (identifier "uVar23") (= "=") (number_literal "8")) (; ";")) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (if_statement "if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" (if "if") (parenthesized_expression "((int)uVar21 < 1)" (( "(") (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          if (!NAN(fVar33)) goto LAB_00166458;\n          uVar8 = 0;\n        }" ({ "{") (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" (* "*") (cast_expression "(int *)(iVar24 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x14)" (( "(") (binary_expression "iVar24 + 0x14" (identifier "iVar24") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (!NAN(fVar33)) goto LAB_00166458;" (if "if") (parenthesized_expression "(!NAN(fVar33))" (( "(") (unary_expression "!NAN(fVar33)" (! "!") (call_expression "NAN(fVar33)" (identifier "NAN") (argument_list "(fVar33)" (( "(") (identifier "fVar33") () ")")))) () ")")) (goto_statement "goto LAB_00166458;" (goto "goto") (statement_identifier "LAB_00166458") (; ";"))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" (else "else") (compound_statement "{\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" ({ "{") (do_statement "do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);" (do "do") (compound_statement "{\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }\n            uVar23 = param_2[0x15];\n          }" ({ "{") (while_statement "while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_00166434;\n            }" ({ "{") (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" (identifier "uVar9") (= "=") (identifier "uVar23")) (; ";")) (if_statement "if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }" (if "if") (parenthesized_expression "(uVar21 <= uVar23)" (( "(") (binary_expression "uVar21 <= uVar23" (identifier "uVar21") (<= "<=") (identifier "uVar23")) () ")")) (compound_statement "{\n                uVar9 = uVar21;\n              }" ({ "{") (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" (identifier "uVar9") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" (identifier "uVar15") (= "=") (binary_expression "uVar21 - uVar9" (identifier "uVar21") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" (identifier "uVar21") (= "=") (identifier "uVar15")) (; ";")) (if_statement "if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }" (if "if") (parenthesized_expression "((int)uVar15 < 0)" (( "(") (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                uVar21 = 0;\n              }" ({ "{") (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (uVar23 == 8) {\n                *param_6 = 0;\n              }" (if "if") (parenthesized_expression "(uVar23 == 8)" (( "(") (binary_expression "uVar23 == 8" (identifier "uVar23") (== "==") (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 "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "uVar8 >> (uVar21 & 0x1f)" (identifier "uVar8") (>> ">>") (parenthesized_expression "(uVar21 & 0x1f)" (( "(") (binary_expression "uVar21 & 0x1f" (identifier "uVar21") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }" (if "if") (parenthesized_expression "((uVar21 & 0x20) != 0)" (( "(") (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" (( "(") (binary_expression "uVar21 & 0x20" (identifier "uVar21") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar10 = 0;\n              }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" (identifier "uVar23") (= "=") (binary_expression "uVar23 - uVar9" (identifier "uVar23") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (identifier "bVar13") (= "=") (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (( "(") (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" (( "(") (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << (uVar9 & 0x1f))" (( "(") (binary_expression "-1 << (uVar9 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "(uVar9 & 0x1f)" (( "(") (binary_expression "uVar9 & 0x1f" (identifier "uVar9") (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar10")) () ")")) (<< "<<") (parenthesized_expression "(uVar23 & 0x1f)" (( "(") (binary_expression "uVar23 & 0x1f" (identifier "uVar23") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }" (if "if") (parenthesized_expression "((uVar23 & 0x20) != 0)" (( "(") (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" (( "(") (binary_expression "uVar23 & 0x20" (identifier "uVar23") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                bVar13 = 0;\n              }" ({ "{") (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "bVar13 | *param_6" (identifier "bVar13") (| "|") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (if_statement "if (uVar23 != 0) break;" (if "if") (parenthesized_expression "(uVar23 != 0)" (( "(") (binary_expression "uVar23 != 0" (identifier "uVar23") (!= "!=") (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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" (identifier "uVar23") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar15 < 1) goto LAB_00166434;" (if "if") (parenthesized_expression "((int)uVar15 < 1)" (( "(") (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_00166434;" (goto "goto") (statement_identifier "LAB_00166434") (; ";"))) (} "}"))) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" (identifier "uVar23") (= "=") (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar15)" (( "(") (binary_expression "0 < (int)uVar15" (number_literal "0") (< "<") (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15"))) () ")")) (; ";")) (labeled_statement "LAB_00166434:\n          iVar24 = *(int *)(param_1 + 0x2d0);" (statement_identifier "LAB_00166434") (: ":") (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";"))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" (* "*") (cast_expression "(int *)(iVar24 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x14)" (( "(") (binary_expression "iVar24 + 0x14" (identifier "iVar24") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" (identifier "uVar21") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (NAN(fVar33)) {\nLAB_00166cbc:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" (if "if") (parenthesized_expression "(NAN(fVar33))" (( "(") (call_expression "NAN(fVar33)" (identifier "NAN") (argument_list "(fVar33)" (( "(") (identifier "fVar33") () ")"))) () ")")) (compound_statement "{\nLAB_00166cbc:\n            uVar8 = 0;\n          }" ({ "{") (labeled_statement "LAB_00166cbc:\n            uVar8 = 0;" (statement_identifier "LAB_00166cbc") (: ":") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" (else "else") (compound_statement "{\nLAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;\n            dVar42 = ((double)fVar33 * dVar29) / dVar39;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" ({ "{") (labeled_statement "LAB_00166458:\n            if (fVar33 <= 0.0) goto LAB_00166cbc;" (statement_identifier "LAB_00166458") (: ":") (if_statement "if (fVar33 <= 0.0) goto LAB_00166cbc;" (if "if") (parenthesized_expression "(fVar33 <= 0.0)" (( "(") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_00166cbc;" (goto "goto") (statement_identifier "LAB_00166cbc") (; ";")))) (expression_statement "dVar42 = ((double)fVar33 * dVar29) / dVar39;" (assignment_expression "dVar42 = ((double)fVar33 * dVar29) / dVar39" (identifier "dVar42") (= "=") (binary_expression "((double)fVar33 * dVar29) / dVar39" (parenthesized_expression "((double)fVar33 * dVar29)" (( "(") (binary_expression "(double)fVar33 * dVar29" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (identifier "dVar29")) () ")")) (/ "/") (identifier "dVar39"))) (; ";")) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" (if "if") (parenthesized_expression "(dVar42 < dVar37)" (( "(") (binary_expression "dVar42 < dVar37" (identifier "dVar42") (< "<") (identifier "dVar37")) () ")")) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_03;\n            }" ({ "{") (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar42 + dVar41)" (( "(") (binary_expression "dVar42 + dVar41" (identifier "dVar42") (+ "+") (identifier "dVar41")) () ")"))) (; ";")) (expression_statement "uVar8 = extraout_v1_03;" (assignment_expression "uVar8 = extraout_v1_03" (identifier "uVar8") (= "=") (identifier "extraout_v1_03")) (; ";")) (} "}")) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" (else "else") (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" ({ "{") (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" (identifier "uVar8") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (} "}")))) (if_statement "if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }" ({ "{") (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" (identifier "uVar23") (= "=") (number_literal "8")) (; ";")) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((int)uVar21 < 1) {\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" (if "if") (parenthesized_expression "((int)uVar21 < 1)" (( "(") (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          if (!NAN(fVar33)) goto LAB_00166550;\n          uVar8 = 0;\n        }" ({ "{") (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" (* "*") (cast_expression "(int *)(iVar24 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x20)" (( "(") (binary_expression "iVar24 + 0x20" (identifier "iVar24") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (!NAN(fVar33)) goto LAB_00166550;" (if "if") (parenthesized_expression "(!NAN(fVar33))" (( "(") (unary_expression "!NAN(fVar33)" (! "!") (call_expression "NAN(fVar33)" (identifier "NAN") (argument_list "(fVar33)" (( "(") (identifier "fVar33") () ")")))) () ")")) (goto_statement "goto LAB_00166550;" (goto "goto") (statement_identifier "LAB_00166550") (; ";"))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" (else "else") (compound_statement "{\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n          uVar21 = *param_2;\n          if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }\n          if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }\n        }" ({ "{") (do_statement "do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);" (do "do") (compound_statement "{\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }\n            uVar23 = param_2[0x15];\n          }" ({ "{") (while_statement "while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016652c;\n            }" ({ "{") (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" (identifier "uVar9") (= "=") (identifier "uVar23")) (; ";")) (if_statement "if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }" (if "if") (parenthesized_expression "(uVar21 <= uVar23)" (( "(") (binary_expression "uVar21 <= uVar23" (identifier "uVar21") (<= "<=") (identifier "uVar23")) () ")")) (compound_statement "{\n                uVar9 = uVar21;\n              }" ({ "{") (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" (identifier "uVar9") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" (identifier "uVar15") (= "=") (binary_expression "uVar21 - uVar9" (identifier "uVar21") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" (identifier "uVar21") (= "=") (identifier "uVar15")) (; ";")) (if_statement "if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }" (if "if") (parenthesized_expression "((int)uVar15 < 0)" (( "(") (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                uVar21 = 0;\n              }" ({ "{") (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (uVar23 == 8) {\n                *param_6 = 0;\n              }" (if "if") (parenthesized_expression "(uVar23 == 8)" (( "(") (binary_expression "uVar23 == 8" (identifier "uVar23") (== "==") (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 "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "uVar8 >> (uVar21 & 0x1f)" (identifier "uVar8") (>> ">>") (parenthesized_expression "(uVar21 & 0x1f)" (( "(") (binary_expression "uVar21 & 0x1f" (identifier "uVar21") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }" (if "if") (parenthesized_expression "((uVar21 & 0x20) != 0)" (( "(") (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" (( "(") (binary_expression "uVar21 & 0x20" (identifier "uVar21") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar10 = 0;\n              }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" (identifier "uVar23") (= "=") (binary_expression "uVar23 - uVar9" (identifier "uVar23") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (identifier "bVar13") (= "=") (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (( "(") (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" (( "(") (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << (uVar9 & 0x1f))" (( "(") (binary_expression "-1 << (uVar9 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "(uVar9 & 0x1f)" (( "(") (binary_expression "uVar9 & 0x1f" (identifier "uVar9") (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar10")) () ")")) (<< "<<") (parenthesized_expression "(uVar23 & 0x1f)" (( "(") (binary_expression "uVar23 & 0x1f" (identifier "uVar23") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }" (if "if") (parenthesized_expression "((uVar23 & 0x20) != 0)" (( "(") (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" (( "(") (binary_expression "uVar23 & 0x20" (identifier "uVar23") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                bVar13 = 0;\n              }" ({ "{") (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "bVar13 | *param_6" (identifier "bVar13") (| "|") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (if_statement "if (uVar23 != 0) break;" (if "if") (parenthesized_expression "(uVar23 != 0)" (( "(") (binary_expression "uVar23 != 0" (identifier "uVar23") (!= "!=") (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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" (identifier "uVar23") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar15 < 1) goto LAB_0016652c;" (if "if") (parenthesized_expression "((int)uVar15 < 1)" (( "(") (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0016652c;" (goto "goto") (statement_identifier "LAB_0016652c") (; ";"))) (} "}"))) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" (identifier "uVar23") (= "=") (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar15)" (( "(") (binary_expression "0 < (int)uVar15" (number_literal "0") (< "<") (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15"))) () ")")) (; ";")) (labeled_statement "LAB_0016652c:\n          iVar24 = *(int *)(param_1 + 0x2d0);" (statement_identifier "LAB_0016652c") (: ":") (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";"))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" (* "*") (cast_expression "(int *)(iVar24 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x20)" (( "(") (binary_expression "iVar24 + 0x20" (identifier "iVar24") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" (identifier "uVar21") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (NAN(fVar33)) {\nLAB_00166cb4:\n            uVar8 = 0;\n          }\n          else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" (if "if") (parenthesized_expression "(NAN(fVar33))" (( "(") (call_expression "NAN(fVar33)" (identifier "NAN") (argument_list "(fVar33)" (( "(") (identifier "fVar33") () ")"))) () ")")) (compound_statement "{\nLAB_00166cb4:\n            uVar8 = 0;\n          }" ({ "{") (labeled_statement "LAB_00166cb4:\n            uVar8 = 0;" (statement_identifier "LAB_00166cb4") (: ":") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" (else "else") (compound_statement "{\nLAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }\n          }" ({ "{") (labeled_statement "LAB_00166550:\n            if (fVar33 <= 0.0) goto LAB_00166cb4;" (statement_identifier "LAB_00166550") (: ":") (if_statement "if (fVar33 <= 0.0) goto LAB_00166cb4;" (if "if") (parenthesized_expression "(fVar33 <= 0.0)" (( "(") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_00166cb4;" (goto "goto") (statement_identifier "LAB_00166cb4") (; ";")))) (expression_statement "dVar42 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar42 = ((double)fVar33 * dVar40) / dVar38" (identifier "dVar42") (= "=") (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" (( "(") (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (identifier "dVar40")) () ")")) (/ "/") (identifier "dVar38"))) (; ";")) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }\n            else {\n              uVar8 = 0xffffffff;\n            }" (if "if") (parenthesized_expression "(dVar42 < dVar37)" (( "(") (binary_expression "dVar42 < dVar37" (identifier "dVar42") (< "<") (identifier "dVar37")) () ")")) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);\n              uVar8 = extraout_v1_04;\n            }" ({ "{") (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + dVar41)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar42 + dVar41)" (( "(") (binary_expression "dVar42 + dVar41" (identifier "dVar42") (+ "+") (identifier "dVar41")) () ")"))) (; ";")) (expression_statement "uVar8 = extraout_v1_04;" (assignment_expression "uVar8 = extraout_v1_04" (identifier "uVar8") (= "=") (identifier "extraout_v1_04")) (; ";")) (} "}")) (else_clause "else {\n              uVar8 = 0xffffffff;\n            }" (else "else") (compound_statement "{\n              uVar8 = 0xffffffff;\n            }" ({ "{") (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" (identifier "uVar8") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (} "}")))) (if_statement "if (uVar23 == 0) {\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar23 = 8;\n            param_2[0x15] = 8;\n          }" ({ "{") (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" (identifier "uVar23") (= "=") (number_literal "8")) (; ";")) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((int)uVar21 < 1) {\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }\n        else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }" (if "if") (parenthesized_expression "((int)uVar21 < 1)" (( "(") (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          uVar9 = 0;\n          uVar8 = uVar21;\n          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;\n        }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = uVar21;" (assignment_expression "uVar8 = uVar21" (identifier "uVar8") (= "=") (identifier "uVar21")) (; ";")) (if_statement "if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;" (if "if") (parenthesized_expression "(*(int *)(iVar24 + 0x34) == 4)" (( "(") (binary_expression "*(int *)(iVar24 + 0x34) == 4" (pointer_expression "*(int *)(iVar24 + 0x34)" (* "*") (cast_expression "(int *)(iVar24 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x34)" (( "(") (binary_expression "iVar24 + 0x34" (identifier "iVar24") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_00166c44;" (goto "goto") (statement_identifier "LAB_00166c44") (; ";"))) (} "}")) (else_clause "else {\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }" (else "else") (compound_statement "{\n          do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);\nLAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);\n          uVar21 = *param_2;\n          if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }\n          uVar8 = uVar21;\n          if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }\n        }" ({ "{") (do_statement "do {\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          } while (0 < (int)uVar15);" (do "do") (compound_statement "{\n            while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }\n            uVar23 = param_2[0x15];\n          }" ({ "{") (while_statement "while( true ) {\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              uVar9 = uVar23;\n              if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }\n              uVar15 = uVar21 - uVar9;\n              uVar21 = uVar15;\n              if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }\n              if (uVar23 == 8) {\n                *param_6 = 0;\n              }\n              uVar10 = uVar8 >> (uVar21 & 0x1f);\n              if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }\n              uVar23 = uVar23 - uVar9;\n              param_2[0x15] = uVar23;\n              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n              if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }\n              *param_6 = bVar13 | *param_6;\n              if (uVar23 != 0) break;\n              param_6 = param_6 + 1;\n              param_2[0x15] = 8;\n              uVar23 = 8;\n              if ((int)uVar15 < 1) goto LAB_0016662c;\n            }" ({ "{") (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" (identifier "uVar9") (= "=") (identifier "uVar23")) (; ";")) (if_statement "if (uVar21 <= uVar23) {\n                uVar9 = uVar21;\n              }" (if "if") (parenthesized_expression "(uVar21 <= uVar23)" (( "(") (binary_expression "uVar21 <= uVar23" (identifier "uVar21") (<= "<=") (identifier "uVar23")) () ")")) (compound_statement "{\n                uVar9 = uVar21;\n              }" ({ "{") (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" (identifier "uVar9") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" (identifier "uVar15") (= "=") (binary_expression "uVar21 - uVar9" (identifier "uVar21") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" (identifier "uVar21") (= "=") (identifier "uVar15")) (; ";")) (if_statement "if ((int)uVar15 < 0) {\n                uVar21 = 0;\n              }" (if "if") (parenthesized_expression "((int)uVar15 < 0)" (( "(") (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                uVar21 = 0;\n              }" ({ "{") (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (uVar23 == 8) {\n                *param_6 = 0;\n              }" (if "if") (parenthesized_expression "(uVar23 == 8)" (( "(") (binary_expression "uVar23 == 8" (identifier "uVar23") (== "==") (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 "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "uVar8 >> (uVar21 & 0x1f)" (identifier "uVar8") (>> ">>") (parenthesized_expression "(uVar21 & 0x1f)" (( "(") (binary_expression "uVar21 & 0x1f" (identifier "uVar21") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((uVar21 & 0x20) != 0) {\n                uVar10 = 0;\n              }" (if "if") (parenthesized_expression "((uVar21 & 0x20) != 0)" (( "(") (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" (( "(") (binary_expression "uVar21 & 0x20" (identifier "uVar21") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar10 = 0;\n              }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" (identifier "uVar23") (= "=") (binary_expression "uVar23 - uVar9" (identifier "uVar23") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (identifier "bVar13") (= "=") (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (( "(") (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" (( "(") (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << (uVar9 & 0x1f))" (( "(") (binary_expression "-1 << (uVar9 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "(uVar9 & 0x1f)" (( "(") (binary_expression "uVar9 & 0x1f" (identifier "uVar9") (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar10")) () ")")) (<< "<<") (parenthesized_expression "(uVar23 & 0x1f)" (( "(") (binary_expression "uVar23 & 0x1f" (identifier "uVar23") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar23 & 0x20) != 0) {\n                bVar13 = 0;\n              }" (if "if") (parenthesized_expression "((uVar23 & 0x20) != 0)" (( "(") (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" (( "(") (binary_expression "uVar23 & 0x20" (identifier "uVar23") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                bVar13 = 0;\n              }" ({ "{") (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "bVar13 | *param_6" (identifier "bVar13") (| "|") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (if_statement "if (uVar23 != 0) break;" (if "if") (parenthesized_expression "(uVar23 != 0)" (( "(") (binary_expression "uVar23 != 0" (identifier "uVar23") (!= "!=") (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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" (identifier "uVar23") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar15 < 1) goto LAB_0016662c;" (if "if") (parenthesized_expression "((int)uVar15 < 1)" (( "(") (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0016662c;" (goto "goto") (statement_identifier "LAB_0016662c") (; ";"))) (} "}"))) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" (identifier "uVar23") (= "=") (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar15)" (( "(") (binary_expression "0 < (int)uVar15" (number_literal "0") (< "<") (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15"))) () ")")) (; ";")) (labeled_statement "LAB_0016662c:\n          iVar24 = *(int *)(param_1 + 0x2d0);" (statement_identifier "LAB_0016662c") (: ":") (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";"))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" (identifier "uVar21") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }\n          else {\nLAB_00166640:\n            uVar9 = 0;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar24 + 0x34) == 4)" (( "(") (binary_expression "*(int *)(iVar24 + 0x34) == 4" (pointer_expression "*(int *)(iVar24 + 0x34)" (* "*") (cast_expression "(int *)(iVar24 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x34)" (( "(") (binary_expression "iVar24 + 0x34" (identifier "iVar24") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\nLAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n            if (fVar33 <= 0.0) goto LAB_00166640;\n            dVar42 = ((double)fVar33 * dVar40) / dVar38;\n            if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }\n          }" ({ "{") (labeled_statement "LAB_00166c44:\n            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);" (statement_identifier "LAB_00166c44") (: ":") (expression_statement "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" (identifier "fVar33") (= "=") (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" (identifier "fVar31") (- "-") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x38) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 0x38) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 0x38) * 4" (pointer_expression "*(int *)(iVar24 + 0x38)" (* "*") (cast_expression "(int *)(iVar24 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x38)" (( "(") (binary_expression "iVar24 + 0x38" (identifier "iVar24") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";"))) (if_statement "if (fVar33 <= 0.0) goto LAB_00166640;" (if "if") (parenthesized_expression "(fVar33 <= 0.0)" (( "(") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_00166640;" (goto "goto") (statement_identifier "LAB_00166640") (; ";"))) (expression_statement "dVar42 = ((double)fVar33 * dVar40) / dVar38;" (assignment_expression "dVar42 = ((double)fVar33 * dVar40) / dVar38" (identifier "dVar42") (= "=") (binary_expression "((double)fVar33 * dVar40) / dVar38" (parenthesized_expression "((double)fVar33 * dVar40)" (( "(") (binary_expression "(double)fVar33 * dVar40" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (identifier "dVar40")) () ")")) (/ "/") (identifier "dVar38"))) (; ";")) (if_statement "if (dVar42 < dVar37) {\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }\n            else {\n              uVar9 = 0xffffffff;\n            }" (if "if") (parenthesized_expression "(dVar42 < dVar37)" (( "(") (binary_expression "dVar42 < dVar37" (identifier "dVar42") (< "<") (identifier "dVar37")) () ")")) (compound_statement "{\n              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));\n              uVar9 = extraout_v1_05;\n            }" ({ "{") (expression_statement "(*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));" (call_expression "(*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400))" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar42 + *(double *)(puVar2 + 0x1400))" (( "(") (binary_expression "dVar42 + *(double *)(puVar2 + 0x1400)" (identifier "dVar42") (+ "+") (pointer_expression "*(double *)(puVar2 + 0x1400)" (* "*") (cast_expression "(double *)(puVar2 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1400)" (( "(") (binary_expression "puVar2 + 0x1400" (identifier "puVar2") (+ "+") (number_literal "0x1400")) () ")"))))) () ")"))) (; ";")) (expression_statement "uVar9 = extraout_v1_05;" (assignment_expression "uVar9 = extraout_v1_05" (identifier "uVar9") (= "=") (identifier "extraout_v1_05")) (; ";")) (} "}")) (else_clause "else {\n              uVar9 = 0xffffffff;\n            }" (else "else") (compound_statement "{\n              uVar9 = 0xffffffff;\n            }" ({ "{") (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" (identifier "uVar9") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\nLAB_00166640:\n            uVar9 = 0;\n          }" (else "else") (compound_statement "{\nLAB_00166640:\n            uVar9 = 0;\n          }" ({ "{") (labeled_statement "LAB_00166640:\n            uVar9 = 0;" (statement_identifier "LAB_00166640") (: ":") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";"))) (} "}")))) (expression_statement "uVar8 = uVar21;" (assignment_expression "uVar8 = uVar21" (identifier "uVar8") (= "=") (identifier "uVar21")) (; ";")) (if_statement "if (uVar23 == 0) {\n            param_2[0x15] = 8;\n          }" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            param_2[0x15] = 8;\n          }" ({ "{") (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (while_statement "while (0 < (int)uVar8) {\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }" (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"))) () ")")) (compound_statement "{\n          uVar15 = param_2[0x15];\n          uVar23 = uVar15;\n          if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }\n          uVar8 = uVar21 - uVar23;\n          uVar21 = uVar8;\n          if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar15 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = uVar9 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }\n          uVar15 = uVar15 - uVar23;\n          param_2[0x15] = uVar15;\n          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));\n          if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }\n        }" ({ "{") (expression_statement "uVar15 = param_2[0x15];" (assignment_expression "uVar15 = param_2[0x15]" (identifier "uVar15") (= "=") (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (expression_statement "uVar23 = uVar15;" (assignment_expression "uVar23 = uVar15" (identifier "uVar23") (= "=") (identifier "uVar15")) (; ";")) (if_statement "if (uVar21 <= uVar15) {\n            uVar23 = uVar21;\n          }" (if "if") (parenthesized_expression "(uVar21 <= uVar15)" (( "(") (binary_expression "uVar21 <= uVar15" (identifier "uVar21") (<= "<=") (identifier "uVar15")) () ")")) (compound_statement "{\n            uVar23 = uVar21;\n          }" ({ "{") (expression_statement "uVar23 = uVar21;" (assignment_expression "uVar23 = uVar21" (identifier "uVar23") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (expression_statement "uVar8 = uVar21 - uVar23;" (assignment_expression "uVar8 = uVar21 - uVar23" (identifier "uVar8") (= "=") (binary_expression "uVar21 - uVar23" (identifier "uVar21") (- "-") (identifier "uVar23"))) (; ";")) (expression_statement "uVar21 = uVar8;" (assignment_expression "uVar21 = uVar8" (identifier "uVar21") (= "=") (identifier "uVar8")) (; ";")) (if_statement "if ((int)uVar8 < 0) {\n            uVar21 = 0;\n          }" (if "if") (parenthesized_expression "((int)uVar8 < 0)" (( "(") (binary_expression "(int)uVar8 < 0" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            uVar21 = 0;\n          }" ({ "{") (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (uVar15 == 8) {\n            *param_6 = 0;\n          }" (if "if") (parenthesized_expression "(uVar15 == 8)" (( "(") (binary_expression "uVar15 == 8" (identifier "uVar15") (== "==") (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 "uVar10 = uVar9 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar9 >> (uVar21 & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "uVar9 >> (uVar21 & 0x1f)" (identifier "uVar9") (>> ">>") (parenthesized_expression "(uVar21 & 0x1f)" (( "(") (binary_expression "uVar21 & 0x1f" (identifier "uVar21") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((uVar21 & 0x20) != 0) {\n            uVar10 = 0;\n          }" (if "if") (parenthesized_expression "((uVar21 & 0x20) != 0)" (( "(") (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" (( "(") (binary_expression "uVar21 & 0x20" (identifier "uVar21") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar10 = 0;\n          }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar15 = uVar15 - uVar23;" (assignment_expression "uVar15 = uVar15 - uVar23" (identifier "uVar15") (= "=") (binary_expression "uVar15 - uVar23" (identifier "uVar15") (- "-") (identifier "uVar23"))) (; ";")) (expression_statement "param_2[0x15] = uVar15;" (assignment_expression "param_2[0x15] = uVar15" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f))" (identifier "bVar13") (= "=") (call_expression "(byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f))" (( "(") (binary_expression "(~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar23 & 0x1f)) & uVar10)" (( "(") (binary_expression "~(-1 << (uVar23 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar23 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << (uVar23 & 0x1f))" (( "(") (binary_expression "-1 << (uVar23 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "(uVar23 & 0x1f)" (( "(") (binary_expression "uVar23 & 0x1f" (identifier "uVar23") (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar10")) () ")")) (<< "<<") (parenthesized_expression "(uVar15 & 0x1f)" (( "(") (binary_expression "uVar15 & 0x1f" (identifier "uVar15") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar15 & 0x20) != 0) {\n            bVar13 = 0;\n          }" (if "if") (parenthesized_expression "((uVar15 & 0x20) != 0)" (( "(") (binary_expression "(uVar15 & 0x20) != 0" (parenthesized_expression "(uVar15 & 0x20)" (( "(") (binary_expression "uVar15 & 0x20" (identifier "uVar15") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            bVar13 = 0;\n          }" ({ "{") (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "bVar13 | *param_6" (identifier "bVar13") (| "|") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (if_statement "if (uVar15 == 0) {\n            param_6 = param_6 + 1;\n            param_2[0x15] = 8;\n          }" (if "if") (parenthesized_expression "(uVar15 == 0)" (( "(") (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            param_6 = param_6 + 1;\n            param_2[0x15] = 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_6 = param_6 + param_2[10];" (assignment_expression "param_6 = param_6 + param_2[10]" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[10]" (identifier "param_6") (+ "+") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" (* "*") (cast_expression "(int *)(param_1 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c0)" (( "(") (binary_expression "param_1 + 0x2c0" (identifier "param_1") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (if_statement "if (iVar22 == param_4) {\n          return;\n        }" (if "if") (parenthesized_expression "(iVar22 == param_4)" (( "(") (binary_expression "iVar22 == param_4" (identifier "iVar22") (== "==") (identifier "param_4")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" (identifier "uVar21") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00165538:\n    if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }" (statement_identifier "LAB_00165538") (: ":") (if_statement "if (uVar21 == 0) {\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }" (if "if") (parenthesized_expression "(uVar21 == 0)" (( "(") (binary_expression "uVar21 == 0" (identifier "uVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_c0 = 0;\n      local_b8 = 0;\n      goto LAB_0016507c;\n    }" ({ "{") (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" (identifier "local_c0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0016507c;" (goto "goto") (statement_identifier "LAB_0016507c") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }" (else "else") (compound_statement "{\n    if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }\n    if (uVar21 != 0x40) goto LAB_00165538;\n    if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }\n  }" ({ "{") (if_statement "if (uVar21 == 0x20) {\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }" (if "if") (parenthesized_expression "(uVar21 == 0x20)" (( "(") (binary_expression "uVar21 == 0x20" (identifier "uVar21") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n      if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);\n      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);\n      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);\n      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );\n    }" ({ "{") (if_statement "if (param_2[2] == 1) {\n        if (param_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\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_4 < 1) {\n          return;\n        }\n        iVar22 = 0;\n        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n        do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);\n        return;\n      }" ({ "{") (if_statement "if (param_4 < 1) {\n          return;\n        }" (if "if") (parenthesized_expression "(param_4 < 1)" (( "(") (binary_expression "param_4 < 1" (identifier "param_4") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" (identifier "fVar31") (= "=") (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" (* "*") (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a50" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a50")) () ")"))))) (; ";")) (do_statement "do {\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        } while (iVar22 != param_4);" (do "do") (compound_statement "{\n          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }\n          fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }\n          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }\n          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));\n          bVar14 = (byte)((uint)fVar33 >> 8);\n          bVar12 = (byte)((uint)fVar33 >> 0x10);\n          bVar13 = (byte)((uint)fVar33 >> 0x18);\n          if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }\n          iVar22 = iVar22 + 1;\n          param_6 = param_6 + param_2[10] + 0x10;\n          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        }" ({ "{") (expression_statement "fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));" (assignment_expression "fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" (identifier "fVar33") (= "=") (cast_expression "(float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" (( "(") (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)\n                           * *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (* "*") (pointer_expression "*(double *)(param_2 + 0x12)" (* "*") (cast_expression "(double *)(param_2 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x12)" (( "(") (binary_expression "param_2 + 0x12" (identifier "param_2") (+ "+") (number_literal "0x12")) () ")"))))) (+ "+") (pointer_expression "*(double *)(param_2 + 4)" (* "*") (cast_expression "(double *)(param_2 + 4)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")"))))) () ")")))) (; ";")) (expression_statement "bVar14 = (byte)((uint)fVar33 >> 8);" (assignment_expression "bVar14 = (byte)((uint)fVar33 >> 8)" (identifier "bVar14") (= "=") (call_expression "(byte)((uint)fVar33 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar33 >> 8)" (( "(") (binary_expression "(uint)fVar33 >> 8" (cast_expression "(uint)fVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar33")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)((uint)fVar33 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar33 >> 0x10)" (identifier "bVar12") (= "=") (call_expression "(byte)((uint)fVar33 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar33 >> 0x10)" (( "(") (binary_expression "(uint)fVar33 >> 0x10" (cast_expression "(uint)fVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar33")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)((uint)fVar33 >> 0x18);" (assignment_expression "bVar13 = (byte)((uint)fVar33 >> 0x18)" (identifier "bVar13") (= "=") (call_expression "(byte)((uint)fVar33 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar33 >> 0x18)" (( "(") (binary_expression "(uint)fVar33 >> 0x18" (cast_expression "(uint)fVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar33")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == 1) {\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }\n          else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            *param_6 = bVar13;\n            param_6[1] = bVar12;\n            param_6[2] = bVar14;\n            param_6[3] = SUB41(fVar33,0);\n          }" ({ "{") (expression_statement "*param_6 = bVar13;" (assignment_expression "*param_6 = bVar13" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar13")) (; ";")) (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[2] = bVar14;" (assignment_expression "param_6[2] = bVar14" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "param_6[3] = SUB41(fVar33,0);" (assignment_expression "param_6[3] = SUB41(fVar33,0)" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (call_expression "SUB41(fVar33,0)" (identifier "SUB41") (argument_list "(fVar33,0)" (( "(") (identifier "fVar33") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }" (else "else") (compound_statement "{\n            *param_6 = SUB41(fVar33,0);\n            param_6[1] = bVar14;\n            param_6[2] = bVar12;\n            param_6[3] = bVar13;\n          }" ({ "{") (expression_statement "*param_6 = SUB41(fVar33,0);" (assignment_expression "*param_6 = SUB41(fVar33,0)" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (call_expression "SUB41(fVar33,0)" (identifier "SUB41") (argument_list "(fVar33,0)" (( "(") (identifier "fVar33") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[1] = bVar14;" (assignment_expression "param_6[1] = bVar14" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (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] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (} "}")))) (expression_statement "fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));" (assignment_expression "fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" (identifier "fVar33") (= "=") (cast_expression "(float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" (( "(") (binary_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                           *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (* "*") (cast_expression "(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (binary_expression "param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (* "*") (pointer_expression "*(double *)(param_2 + 0x12)" (* "*") (cast_expression "(double *)(param_2 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x12)" (( "(") (binary_expression "param_2 + 0x12" (identifier "param_2") (+ "+") (number_literal "0x12")) () ")"))))) (+ "+") (pointer_expression "*(double *)(param_2 + 4)" (* "*") (cast_expression "(double *)(param_2 + 4)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")"))))) () ")")))) (; ";")) (expression_statement "bVar14 = (byte)((uint)fVar33 >> 8);" (assignment_expression "bVar14 = (byte)((uint)fVar33 >> 8)" (identifier "bVar14") (= "=") (call_expression "(byte)((uint)fVar33 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar33 >> 8)" (( "(") (binary_expression "(uint)fVar33 >> 8" (cast_expression "(uint)fVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar33")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)((uint)fVar33 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar33 >> 0x10)" (identifier "bVar12") (= "=") (call_expression "(byte)((uint)fVar33 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar33 >> 0x10)" (( "(") (binary_expression "(uint)fVar33 >> 0x10" (cast_expression "(uint)fVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar33")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)((uint)fVar33 >> 0x18);" (assignment_expression "bVar13 = (byte)((uint)fVar33 >> 0x18)" (identifier "bVar13") (= "=") (call_expression "(byte)((uint)fVar33 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar33 >> 0x18)" (( "(") (binary_expression "(uint)fVar33 >> 0x18" (cast_expression "(uint)fVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar33")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == 1) {\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            param_6[4] = bVar13;\n            param_6[5] = bVar12;\n            param_6[6] = bVar14;\n            param_6[7] = SUB41(fVar33,0);\n          }" ({ "{") (expression_statement "param_6[4] = bVar13;" (assignment_expression "param_6[4] = bVar13" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (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[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] = SUB41(fVar33,0);" (assignment_expression "param_6[7] = SUB41(fVar33,0)" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (call_expression "SUB41(fVar33,0)" (identifier "SUB41") (argument_list "(fVar33,0)" (( "(") (identifier "fVar33") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }" (else "else") (compound_statement "{\n            param_6[4] = SUB41(fVar33,0);\n            param_6[5] = bVar14;\n            param_6[6] = bVar12;\n            param_6[7] = bVar13;\n          }" ({ "{") (expression_statement "param_6[4] = SUB41(fVar33,0);" (assignment_expression "param_6[4] = SUB41(fVar33,0)" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (call_expression "SUB41(fVar33,0)" (identifier "SUB41") (argument_list "(fVar33,0)" (( "(") (identifier "fVar33") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[5] = bVar14;" (assignment_expression "param_6[5] = bVar14" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (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] = bVar13;" (assignment_expression "param_6[7] = bVar13" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (} "}")))) (expression_statement "fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));" (assignment_expression "fVar33 = (float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" (identifier "fVar33") (= "=") (cast_expression "(float)((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" (( "(") (binary_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                           *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (* "*") (cast_expression "(float *)(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (binary_expression "param_5 +\n                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (* "*") (pointer_expression "*(double *)(param_2 + 0x12)" (* "*") (cast_expression "(double *)(param_2 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x12)" (( "(") (binary_expression "param_2 + 0x12" (identifier "param_2") (+ "+") (number_literal "0x12")) () ")"))))) (+ "+") (pointer_expression "*(double *)(param_2 + 4)" (* "*") (cast_expression "(double *)(param_2 + 4)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")"))))) () ")")))) (; ";")) (expression_statement "bVar14 = (byte)((uint)fVar33 >> 8);" (assignment_expression "bVar14 = (byte)((uint)fVar33 >> 8)" (identifier "bVar14") (= "=") (call_expression "(byte)((uint)fVar33 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar33 >> 8)" (( "(") (binary_expression "(uint)fVar33 >> 8" (cast_expression "(uint)fVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar33")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)((uint)fVar33 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar33 >> 0x10)" (identifier "bVar12") (= "=") (call_expression "(byte)((uint)fVar33 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar33 >> 0x10)" (( "(") (binary_expression "(uint)fVar33 >> 0x10" (cast_expression "(uint)fVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar33")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)((uint)fVar33 >> 0x18);" (assignment_expression "bVar13 = (byte)((uint)fVar33 >> 0x18)" (identifier "bVar13") (= "=") (call_expression "(byte)((uint)fVar33 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar33 >> 0x18)" (( "(") (binary_expression "(uint)fVar33 >> 0x18" (cast_expression "(uint)fVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar33")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == 1) {\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            param_6[8] = bVar13;\n            param_6[9] = bVar12;\n            param_6[10] = bVar14;\n            param_6[0xb] = SUB41(fVar33,0);\n          }" ({ "{") (expression_statement "param_6[8] = bVar13;" (assignment_expression "param_6[8] = bVar13" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (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[0xb] = SUB41(fVar33,0);" (assignment_expression "param_6[0xb] = SUB41(fVar33,0)" (subscript_expression "param_6[0xb]" (identifier "param_6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (call_expression "SUB41(fVar33,0)" (identifier "SUB41") (argument_list "(fVar33,0)" (( "(") (identifier "fVar33") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }" (else "else") (compound_statement "{\n            param_6[8] = SUB41(fVar33,0);\n            param_6[9] = bVar14;\n            param_6[10] = bVar12;\n            param_6[0xb] = bVar13;\n          }" ({ "{") (expression_statement "param_6[8] = SUB41(fVar33,0);" (assignment_expression "param_6[8] = SUB41(fVar33,0)" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (call_expression "SUB41(fVar33,0)" (identifier "SUB41") (argument_list "(fVar33,0)" (( "(") (identifier "fVar33") (, ",") (number_literal "0") () ")")))) (; ";")) (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")) (; ";")) (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] = bVar13;" (assignment_expression "param_6[0xb] = bVar13" (subscript_expression "param_6[0xb]" (identifier "param_6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (} "}")))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }\n          else {\n            dVar25 = 0.0;\n          }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n            dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n          }" ({ "{") (expression_statement "dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));" (assignment_expression "dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" (identifier "dVar25") (= "=") (cast_expression "(double)(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" (( "(") (binary_expression "fVar31 - *(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (identifier "fVar31") (- "-") (pointer_expression "*(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (* "*") (cast_expression "(float *)(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (( "(") (binary_expression "param_5 +\n                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            dVar25 = 0.0;\n          }" (else "else") (compound_statement "{\n            dVar25 = 0.0;\n          }" ({ "{") (expression_statement "dVar25 = 0.0;" (assignment_expression "dVar25 = 0.0" (identifier "dVar25") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (expression_statement "fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));" (assignment_expression "fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" (identifier "fVar33") (= "=") (cast_expression "(float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4))" (( "(") (binary_expression "dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "dVar25 * *(double *)(param_2 + 0x12)" (identifier "dVar25") (* "*") (pointer_expression "*(double *)(param_2 + 0x12)" (* "*") (cast_expression "(double *)(param_2 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x12)" (( "(") (binary_expression "param_2 + 0x12" (identifier "param_2") (+ "+") (number_literal "0x12")) () ")"))))) (+ "+") (pointer_expression "*(double *)(param_2 + 4)" (* "*") (cast_expression "(double *)(param_2 + 4)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")"))))) () ")")))) (; ";")) (expression_statement "bVar14 = (byte)((uint)fVar33 >> 8);" (assignment_expression "bVar14 = (byte)((uint)fVar33 >> 8)" (identifier "bVar14") (= "=") (call_expression "(byte)((uint)fVar33 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar33 >> 8)" (( "(") (binary_expression "(uint)fVar33 >> 8" (cast_expression "(uint)fVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar33")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)((uint)fVar33 >> 0x10);" (assignment_expression "bVar12 = (byte)((uint)fVar33 >> 0x10)" (identifier "bVar12") (= "=") (call_expression "(byte)((uint)fVar33 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar33 >> 0x10)" (( "(") (binary_expression "(uint)fVar33 >> 0x10" (cast_expression "(uint)fVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar33")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)((uint)fVar33 >> 0x18);" (assignment_expression "bVar13 = (byte)((uint)fVar33 >> 0x18)" (identifier "bVar13") (= "=") (call_expression "(byte)((uint)fVar33 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar33 >> 0x18)" (( "(") (binary_expression "(uint)fVar33 >> 0x18" (cast_expression "(uint)fVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar33")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == 1) {\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }\n          else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            param_6[0xc] = bVar13;\n            param_6[0xd] = bVar12;\n            param_6[0xe] = bVar14;\n            param_6[0xf] = SUB41(fVar33,0);\n          }" ({ "{") (expression_statement "param_6[0xc] = bVar13;" (assignment_expression "param_6[0xc] = bVar13" (subscript_expression "param_6[0xc]" (identifier "param_6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (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[0xe] = bVar14;" (assignment_expression "param_6[0xe] = bVar14" (subscript_expression "param_6[0xe]" (identifier "param_6") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "param_6[0xf] = SUB41(fVar33,0);" (assignment_expression "param_6[0xf] = SUB41(fVar33,0)" (subscript_expression "param_6[0xf]" (identifier "param_6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (call_expression "SUB41(fVar33,0)" (identifier "SUB41") (argument_list "(fVar33,0)" (( "(") (identifier "fVar33") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }" (else "else") (compound_statement "{\n            param_6[0xc] = SUB41(fVar33,0);\n            param_6[0xd] = bVar14;\n            param_6[0xe] = bVar12;\n            param_6[0xf] = bVar13;\n          }" ({ "{") (expression_statement "param_6[0xc] = SUB41(fVar33,0);" (assignment_expression "param_6[0xc] = SUB41(fVar33,0)" (subscript_expression "param_6[0xc]" (identifier "param_6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (call_expression "SUB41(fVar33,0)" (identifier "SUB41") (argument_list "(fVar33,0)" (( "(") (identifier "fVar33") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[0xd] = bVar14;" (assignment_expression "param_6[0xd] = bVar14" (subscript_expression "param_6[0xd]" (identifier "param_6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (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] = bVar13;" (assignment_expression "param_6[0xf] = bVar13" (subscript_expression "param_6[0xf]" (identifier "param_6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (} "}")))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_6 = param_6 + param_2[10] + 0x10;" (assignment_expression "param_6 = param_6 + param_2[10] + 0x10" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[10] + 0x10" (binary_expression "param_6 + param_2[10]" (identifier "param_6") (+ "+") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]"))) (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" (* "*") (cast_expression "(int *)(param_1 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c0)" (( "(") (binary_expression "param_1 + 0x2c0" (identifier "param_1") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar22 != param_4)" (( "(") (binary_expression "iVar22 != param_4" (identifier "iVar22") (!= "!=") (identifier "param_4")) () ")")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (param_4 < 1) {\n        return;\n      }" (if "if") (parenthesized_expression "(param_4 < 1)" (( "(") (binary_expression "param_4 < 1" (identifier "param_4") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);" (assignment_expression "dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" (identifier "dVar26") (= "=") (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" (* "*") (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5b00")) () ")"))))) (; ";")) (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410)" (identifier "dVar27") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1410)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1410)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1410" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1410")) () ")"))))) (; ";")) (expression_statement "dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);" (assignment_expression "dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" (identifier "dVar25") (= "=") (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" (* "*") (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x5af8")) () ")"))))) (; ";")) (expression_statement "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" (identifier "dVar28") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1400" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" (identifier "fVar31") (= "=") (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" (* "*") (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a50" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a50")) () ")"))))) (; ";")) (do_statement "do {\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      } while( true );" (do "do") (compound_statement "{\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }\n        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);\n        if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }\n        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x10;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n        if (iVar22 == param_4) {\n          return;\n        }\n      }" ({ "{") (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }" (if "if") (parenthesized_expression "(fVar33 <= 0.0)" (( "(") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165ecc;\nLAB_001660ec:\n          *param_6 = bVar14;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar20;\n        }" ({ "{") (expression_statement "bVar6 = 0;" (assignment_expression "bVar6 = 0" (identifier "bVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" (identifier "bVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" (identifier "bVar20") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2[0x11] != 1) goto LAB_00165ecc;" (if "if") (parenthesized_expression "(param_2[0x11] != 1)" (( "(") (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_00165ecc;" (goto "goto") (statement_identifier "LAB_00165ecc") (; ";"))) (labeled_statement "LAB_001660ec:\n          *param_6 = bVar14;" (statement_identifier "LAB_001660ec") (: ":") (expression_statement "*param_6 = bVar14;" (assignment_expression "*param_6 = bVar14" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar14")) (; ";"))) (expression_statement "param_6[1] = bVar17;" (assignment_expression "param_6[1] = bVar17" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (expression_statement "param_6[2] = bVar18;" (assignment_expression "param_6[2] = bVar18" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar18")) (; ";")) (expression_statement "param_6[3] = bVar20;" (assignment_expression "param_6[3] = bVar20" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar20")) (; ";")) (} "}")) (else_clause "else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }" (else "else") (compound_statement "{\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660ec;\nLAB_00165ecc:\n          *param_6 = bVar19;\n          param_6[1] = bVar13;\n          param_6[2] = bVar12;\n          param_6[3] = bVar6;\n        }" ({ "{") (expression_statement "dVar29 = (double)fVar33 * dVar26;" (assignment_expression "dVar29 = (double)fVar33 * dVar26" (identifier "dVar29") (= "=") (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (identifier "dVar26"))) (; ";")) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" (identifier "bVar12") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" (if "if") (parenthesized_expression "(dVar29 < dVar25)" (( "(") (binary_expression "dVar29 < dVar25" (identifier "dVar29") (< "<") (identifier "dVar25")) () ")")) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }" ({ "{") (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" (identifier "dVar29") (= "=") (binary_expression "dVar29 + dVar28" (identifier "dVar29") (+ "+") (identifier "dVar28"))) (; ";")) (if_statement "if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" (if "if") (parenthesized_expression "(dVar29 < dVar27)" (( "(") (binary_expression "dVar29 < dVar27" (identifier "dVar29") (< "<") (identifier "dVar27")) () ")")) (compound_statement "{\n              uVar21 = (uint)dVar29;\n            }" ({ "{") (expression_statement "uVar21 = (uint)dVar29;" (assignment_expression "uVar21 = (uint)dVar29" (identifier "uVar21") (= "=") (cast_expression "(uint)dVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar29"))) (; ";")) (} "}")) (else_clause "else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" (else "else") (compound_statement "{\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" ({ "{") (expression_statement "uVar21 = (int)(dVar29 - dVar27) | 0x80000000;" (assignment_expression "uVar21 = (int)(dVar29 - dVar27) | 0x80000000" (identifier "uVar21") (= "=") (binary_expression "(int)(dVar29 - dVar27) | 0x80000000" (cast_expression "(int)(dVar29 - dVar27)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar29 - dVar27)" (( "(") (binary_expression "dVar29 - dVar27" (identifier "dVar29") (- "-") (identifier "dVar27")) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "bVar19 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar19 = (byte)(uVar21 >> 0x18)" (identifier "bVar19") (= "=") (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 0x18)" (( "(") (binary_expression "uVar21 >> 0x18" (identifier "uVar21") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar13 = (byte)(uVar21 >> 0x10)" (identifier "bVar13") (= "=") (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 0x10)" (( "(") (binary_expression "uVar21 >> 0x10" (identifier "uVar21") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" (identifier "bVar12") (= "=") (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 8)" (( "(") (binary_expression "uVar21 >> 8" (identifier "uVar21") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar6 = (byte)uVar21;" (assignment_expression "bVar6 = (byte)uVar21" (identifier "bVar6") (= "=") (cast_expression "(byte)uVar21" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar21"))) (; ";")) (} "}")) (else_clause "else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" (else "else") (compound_statement "{\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" ({ "{") (expression_statement "bVar6 = 0xff;" (assignment_expression "bVar6 = 0xff" (identifier "bVar6") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" (identifier "bVar13") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" (identifier "bVar19") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (expression_statement "bVar14 = bVar6;" (assignment_expression "bVar14 = bVar6" (identifier "bVar14") (= "=") (identifier "bVar6")) (; ";")) (expression_statement "bVar17 = bVar12;" (assignment_expression "bVar17 = bVar12" (identifier "bVar17") (= "=") (identifier "bVar12")) (; ";")) (expression_statement "bVar18 = bVar13;" (assignment_expression "bVar18 = bVar13" (identifier "bVar18") (= "=") (identifier "bVar13")) (; ";")) (expression_statement "bVar20 = bVar19;" (assignment_expression "bVar20 = bVar19" (identifier "bVar20") (= "=") (identifier "bVar19")) (; ";")) (if_statement "if (param_2[0x11] == 1) goto LAB_001660ec;" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_001660ec;" (goto "goto") (statement_identifier "LAB_001660ec") (; ";"))) (labeled_statement "LAB_00165ecc:\n          *param_6 = bVar19;" (statement_identifier "LAB_00165ecc") (: ":") (expression_statement "*param_6 = bVar19;" (assignment_expression "*param_6 = bVar19" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar19")) (; ";"))) (expression_statement "param_6[1] = bVar13;" (assignment_expression "param_6[1] = bVar13" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (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] = bVar6;" (assignment_expression "param_6[3] = bVar6" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar6")) (; ";")) (} "}")))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }" (if "if") (parenthesized_expression "(fVar33 <= 0.0)" (( "(") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165f54;\nLAB_0016611c:\n          param_6[4] = bVar14;\n          param_6[5] = bVar17;\n          param_6[6] = bVar18;\n          param_6[7] = bVar20;\n        }" ({ "{") (expression_statement "bVar6 = 0;" (assignment_expression "bVar6 = 0" (identifier "bVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" (identifier "bVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" (identifier "bVar20") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2[0x11] != 1) goto LAB_00165f54;" (if "if") (parenthesized_expression "(param_2[0x11] != 1)" (( "(") (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_00165f54;" (goto "goto") (statement_identifier "LAB_00165f54") (; ";"))) (labeled_statement "LAB_0016611c:\n          param_6[4] = bVar14;" (statement_identifier "LAB_0016611c") (: ":") (expression_statement "param_6[4] = bVar14;" (assignment_expression "param_6[4] = bVar14" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar14")) (; ";"))) (expression_statement "param_6[5] = bVar17;" (assignment_expression "param_6[5] = bVar17" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (expression_statement "param_6[6] = bVar18;" (assignment_expression "param_6[6] = bVar18" (subscript_expression "param_6[6]" (identifier "param_6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar18")) (; ";")) (expression_statement "param_6[7] = bVar20;" (assignment_expression "param_6[7] = bVar20" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bVar20")) (; ";")) (} "}")) (else_clause "else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }" (else "else") (compound_statement "{\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_0016611c;\nLAB_00165f54:\n          param_6[4] = bVar19;\n          param_6[5] = bVar13;\n          param_6[6] = bVar12;\n          param_6[7] = bVar6;\n        }" ({ "{") (expression_statement "dVar29 = (double)fVar33 * dVar26;" (assignment_expression "dVar29 = (double)fVar33 * dVar26" (identifier "dVar29") (= "=") (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (identifier "dVar26"))) (; ";")) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" (identifier "bVar12") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" (if "if") (parenthesized_expression "(dVar29 < dVar25)" (( "(") (binary_expression "dVar29 < dVar25" (identifier "dVar29") (< "<") (identifier "dVar25")) () ")")) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }" ({ "{") (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" (identifier "dVar29") (= "=") (binary_expression "dVar29 + dVar28" (identifier "dVar29") (+ "+") (identifier "dVar28"))) (; ";")) (if_statement "if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" (if "if") (parenthesized_expression "(dVar29 < dVar27)" (( "(") (binary_expression "dVar29 < dVar27" (identifier "dVar29") (< "<") (identifier "dVar27")) () ")")) (compound_statement "{\n              uVar21 = (uint)dVar29;\n            }" ({ "{") (expression_statement "uVar21 = (uint)dVar29;" (assignment_expression "uVar21 = (uint)dVar29" (identifier "uVar21") (= "=") (cast_expression "(uint)dVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar29"))) (; ";")) (} "}")) (else_clause "else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" (else "else") (compound_statement "{\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" ({ "{") (expression_statement "uVar21 = (int)(dVar29 - dVar27) | 0x80000000;" (assignment_expression "uVar21 = (int)(dVar29 - dVar27) | 0x80000000" (identifier "uVar21") (= "=") (binary_expression "(int)(dVar29 - dVar27) | 0x80000000" (cast_expression "(int)(dVar29 - dVar27)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar29 - dVar27)" (( "(") (binary_expression "dVar29 - dVar27" (identifier "dVar29") (- "-") (identifier "dVar27")) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "bVar19 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar19 = (byte)(uVar21 >> 0x18)" (identifier "bVar19") (= "=") (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 0x18)" (( "(") (binary_expression "uVar21 >> 0x18" (identifier "uVar21") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar13 = (byte)(uVar21 >> 0x10)" (identifier "bVar13") (= "=") (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 0x10)" (( "(") (binary_expression "uVar21 >> 0x10" (identifier "uVar21") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" (identifier "bVar12") (= "=") (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 8)" (( "(") (binary_expression "uVar21 >> 8" (identifier "uVar21") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar6 = (byte)uVar21;" (assignment_expression "bVar6 = (byte)uVar21" (identifier "bVar6") (= "=") (cast_expression "(byte)uVar21" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar21"))) (; ";")) (} "}")) (else_clause "else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" (else "else") (compound_statement "{\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" ({ "{") (expression_statement "bVar6 = 0xff;" (assignment_expression "bVar6 = 0xff" (identifier "bVar6") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" (identifier "bVar13") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" (identifier "bVar19") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (expression_statement "bVar14 = bVar6;" (assignment_expression "bVar14 = bVar6" (identifier "bVar14") (= "=") (identifier "bVar6")) (; ";")) (expression_statement "bVar17 = bVar12;" (assignment_expression "bVar17 = bVar12" (identifier "bVar17") (= "=") (identifier "bVar12")) (; ";")) (expression_statement "bVar18 = bVar13;" (assignment_expression "bVar18 = bVar13" (identifier "bVar18") (= "=") (identifier "bVar13")) (; ";")) (expression_statement "bVar20 = bVar19;" (assignment_expression "bVar20 = bVar19" (identifier "bVar20") (= "=") (identifier "bVar19")) (; ";")) (if_statement "if (param_2[0x11] == 1) goto LAB_0016611c;" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0016611c;" (goto "goto") (statement_identifier "LAB_0016611c") (; ";"))) (labeled_statement "LAB_00165f54:\n          param_6[4] = bVar19;" (statement_identifier "LAB_00165f54") (: ":") (expression_statement "param_6[4] = bVar19;" (assignment_expression "param_6[4] = bVar19" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar19")) (; ";"))) (expression_statement "param_6[5] = bVar13;" (assignment_expression "param_6[5] = bVar13" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (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] = bVar6;" (assignment_expression "param_6[7] = bVar6" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bVar6")) (; ";")) (} "}")))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (fVar33 <= 0.0) {\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }" (if "if") (parenthesized_expression "(fVar33 <= 0.0)" (( "(") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n          bVar6 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar19 = 0;\n          bVar14 = 0;\n          bVar17 = 0;\n          bVar18 = 0;\n          bVar20 = 0;\n          if (param_2[0x11] != 1) goto LAB_00165fe8;\nLAB_001660b8:\n          param_6[8] = bVar14;\n          param_6[9] = bVar17;\n          param_6[10] = bVar18;\n          param_6[0xb] = bVar20;\n        }" ({ "{") (expression_statement "bVar6 = 0;" (assignment_expression "bVar6 = 0" (identifier "bVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" (identifier "bVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" (identifier "bVar20") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2[0x11] != 1) goto LAB_00165fe8;" (if "if") (parenthesized_expression "(param_2[0x11] != 1)" (( "(") (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_00165fe8;" (goto "goto") (statement_identifier "LAB_00165fe8") (; ";"))) (labeled_statement "LAB_001660b8:\n          param_6[8] = bVar14;" (statement_identifier "LAB_001660b8") (: ":") (expression_statement "param_6[8] = bVar14;" (assignment_expression "param_6[8] = bVar14" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "bVar14")) (; ";"))) (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")) (; ";")) (expression_statement "param_6[10] = bVar18;" (assignment_expression "param_6[10] = bVar18" (subscript_expression "param_6[10]" (identifier "param_6") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "bVar18")) (; ";")) (expression_statement "param_6[0xb] = bVar20;" (assignment_expression "param_6[0xb] = bVar20" (subscript_expression "param_6[0xb]" (identifier "param_6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "bVar20")) (; ";")) (} "}")) (else_clause "else {\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }" (else "else") (compound_statement "{\n          dVar29 = (double)fVar33 * dVar26;\n          bVar12 = 0xff;\n          if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }\n          bVar14 = bVar6;\n          bVar17 = bVar12;\n          bVar18 = bVar13;\n          bVar20 = bVar19;\n          if (param_2[0x11] == 1) goto LAB_001660b8;\nLAB_00165fe8:\n          param_6[8] = bVar19;\n          param_6[9] = bVar13;\n          param_6[10] = bVar12;\n          param_6[0xb] = bVar6;\n        }" ({ "{") (expression_statement "dVar29 = (double)fVar33 * dVar26;" (assignment_expression "dVar29 = (double)fVar33 * dVar26" (identifier "dVar29") (= "=") (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (identifier "dVar26"))) (; ";")) (expression_statement "bVar12 = 0xff;" (assignment_expression "bVar12 = 0xff" (identifier "bVar12") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar29 < dVar25) {\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }\n          else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" (if "if") (parenthesized_expression "(dVar29 < dVar25)" (( "(") (binary_expression "dVar29 < dVar25" (identifier "dVar29") (< "<") (identifier "dVar25")) () ")")) (compound_statement "{\n            dVar29 = dVar29 + dVar28;\n            if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }\n            bVar19 = (byte)(uVar21 >> 0x18);\n            bVar13 = (byte)(uVar21 >> 0x10);\n            bVar12 = (byte)(uVar21 >> 8);\n            bVar6 = (byte)uVar21;\n          }" ({ "{") (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" (identifier "dVar29") (= "=") (binary_expression "dVar29 + dVar28" (identifier "dVar29") (+ "+") (identifier "dVar28"))) (; ";")) (if_statement "if (dVar29 < dVar27) {\n              uVar21 = (uint)dVar29;\n            }\n            else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" (if "if") (parenthesized_expression "(dVar29 < dVar27)" (( "(") (binary_expression "dVar29 < dVar27" (identifier "dVar29") (< "<") (identifier "dVar27")) () ")")) (compound_statement "{\n              uVar21 = (uint)dVar29;\n            }" ({ "{") (expression_statement "uVar21 = (uint)dVar29;" (assignment_expression "uVar21 = (uint)dVar29" (identifier "uVar21") (= "=") (cast_expression "(uint)dVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar29"))) (; ";")) (} "}")) (else_clause "else {\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" (else "else") (compound_statement "{\n              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;\n            }" ({ "{") (expression_statement "uVar21 = (int)(dVar29 - dVar27) | 0x80000000;" (assignment_expression "uVar21 = (int)(dVar29 - dVar27) | 0x80000000" (identifier "uVar21") (= "=") (binary_expression "(int)(dVar29 - dVar27) | 0x80000000" (cast_expression "(int)(dVar29 - dVar27)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar29 - dVar27)" (( "(") (binary_expression "dVar29 - dVar27" (identifier "dVar29") (- "-") (identifier "dVar27")) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "bVar19 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar19 = (byte)(uVar21 >> 0x18)" (identifier "bVar19") (= "=") (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 0x18)" (( "(") (binary_expression "uVar21 >> 0x18" (identifier "uVar21") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar13 = (byte)(uVar21 >> 0x10)" (identifier "bVar13") (= "=") (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 0x10)" (( "(") (binary_expression "uVar21 >> 0x10" (identifier "uVar21") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" (identifier "bVar12") (= "=") (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 8)" (( "(") (binary_expression "uVar21 >> 8" (identifier "uVar21") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar6 = (byte)uVar21;" (assignment_expression "bVar6 = (byte)uVar21" (identifier "bVar6") (= "=") (cast_expression "(byte)uVar21" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar21"))) (; ";")) (} "}")) (else_clause "else {\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" (else "else") (compound_statement "{\n            bVar6 = 0xff;\n            bVar13 = 0xff;\n            bVar19 = 0xff;\n          }" ({ "{") (expression_statement "bVar6 = 0xff;" (assignment_expression "bVar6 = 0xff" (identifier "bVar6") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" (identifier "bVar13") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" (identifier "bVar19") (= "=") (number_literal "0xff")) (; ";")) (} "}")))) (expression_statement "bVar14 = bVar6;" (assignment_expression "bVar14 = bVar6" (identifier "bVar14") (= "=") (identifier "bVar6")) (; ";")) (expression_statement "bVar17 = bVar12;" (assignment_expression "bVar17 = bVar12" (identifier "bVar17") (= "=") (identifier "bVar12")) (; ";")) (expression_statement "bVar18 = bVar13;" (assignment_expression "bVar18 = bVar13" (identifier "bVar18") (= "=") (identifier "bVar13")) (; ";")) (expression_statement "bVar20 = bVar19;" (assignment_expression "bVar20 = bVar19" (identifier "bVar20") (= "=") (identifier "bVar19")) (; ";")) (if_statement "if (param_2[0x11] == 1) goto LAB_001660b8;" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_001660b8;" (goto "goto") (statement_identifier "LAB_001660b8") (; ";"))) (labeled_statement "LAB_00165fe8:\n          param_6[8] = bVar19;" (statement_identifier "LAB_00165fe8") (: ":") (expression_statement "param_6[8] = bVar19;" (assignment_expression "param_6[8] = bVar19" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "bVar19")) (; ";"))) (expression_statement "param_6[9] = bVar13;" (assignment_expression "param_6[9] = bVar13" (subscript_expression "param_6[9]" (identifier "param_6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (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] = bVar6;" (assignment_expression "param_6[0xb] = bVar6" (subscript_expression "param_6[0xb]" (identifier "param_6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "bVar6")) (; ";")) (} "}")))) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)) {\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }\n        else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||\n           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0)" (( "(") (comma_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),\n           fVar33 <= 0.0" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (identifier "fVar33") (= "=") (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (identifier "fVar31") (- "-") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (, ",") (binary_expression "fVar33 <= 0.0" (identifier "fVar33") (<= "<=") (number_literal "0.0"))) () ")"))) () ")")) (compound_statement "{\n          bVar14 = 0;\n          bVar12 = 0;\n          bVar13 = 0;\n          bVar17 = 0;\nLAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;\nLAB_00166084:\n          param_6[0xc] = bVar14;\n          param_6[0xd] = bVar12;\n          param_6[0xe] = bVar13;\n          param_6[0xf] = bVar17;\n        }" ({ "{") (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 "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00165e14:\n          if (param_2[0x11] != 1) goto LAB_00165e24;" (statement_identifier "LAB_00165e14") (: ":") (if_statement "if (param_2[0x11] != 1) goto LAB_00165e24;" (if "if") (parenthesized_expression "(param_2[0x11] != 1)" (( "(") (binary_expression "param_2[0x11] != 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_00165e24;" (goto "goto") (statement_identifier "LAB_00165e24") (; ";")))) (labeled_statement "LAB_00166084:\n          param_6[0xc] = bVar14;" (statement_identifier "LAB_00166084") (: ":") (expression_statement "param_6[0xc] = bVar14;" (assignment_expression "param_6[0xc] = bVar14" (subscript_expression "param_6[0xc]" (identifier "param_6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "bVar14")) (; ";"))) (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[0xe] = bVar13;" (assignment_expression "param_6[0xe] = bVar13" (subscript_expression "param_6[0xe]" (identifier "param_6") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "param_6[0xf] = bVar17;" (assignment_expression "param_6[0xf] = bVar17" (subscript_expression "param_6[0xf]" (identifier "param_6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (} "}")) (else_clause "else {\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }" (else "else") (compound_statement "{\n          dVar29 = (double)fVar33 * dVar26;\n          if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }\n          dVar29 = dVar29 + dVar28;\n          if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }\n          bVar17 = (byte)(uVar21 >> 0x18);\n          bVar13 = (byte)(uVar21 >> 0x10);\n          bVar12 = (byte)(uVar21 >> 8);\n          bVar14 = (byte)uVar21;\n          if (param_2[0x11] == 1) goto LAB_00166084;\nLAB_00165e24:\n          param_6[0xc] = bVar17;\n          param_6[0xd] = bVar13;\n          param_6[0xe] = bVar12;\n          param_6[0xf] = bVar14;\n        }" ({ "{") (expression_statement "dVar29 = (double)fVar33 * dVar26;" (assignment_expression "dVar29 = (double)fVar33 * dVar26" (identifier "dVar29") (= "=") (binary_expression "(double)fVar33 * dVar26" (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33")) (* "*") (identifier "dVar26"))) (; ";")) (if_statement "if (dVar25 <= dVar29) {\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }" (if "if") (parenthesized_expression "(dVar25 <= dVar29)" (( "(") (binary_expression "dVar25 <= dVar29" (identifier "dVar25") (<= "<=") (identifier "dVar29")) () ")")) (compound_statement "{\n            bVar14 = 0xff;\n            bVar12 = 0xff;\n            bVar13 = 0xff;\n            bVar17 = 0xff;\n            goto LAB_00165e14;\n          }" ({ "{") (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 "bVar13 = 0xff;" (assignment_expression "bVar13 = 0xff" (identifier "bVar13") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar17 = 0xff;" (assignment_expression "bVar17 = 0xff" (identifier "bVar17") (= "=") (number_literal "0xff")) (; ";")) (goto_statement "goto LAB_00165e14;" (goto "goto") (statement_identifier "LAB_00165e14") (; ";")) (} "}"))) (expression_statement "dVar29 = dVar29 + dVar28;" (assignment_expression "dVar29 = dVar29 + dVar28" (identifier "dVar29") (= "=") (binary_expression "dVar29 + dVar28" (identifier "dVar29") (+ "+") (identifier "dVar28"))) (; ";")) (if_statement "if (dVar29 < *(double *)(puVar2 + 0x1410)) {\n            uVar21 = (uint)dVar29;\n          }\n          else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }" (if "if") (parenthesized_expression "(dVar29 < *(double *)(puVar2 + 0x1410))" (( "(") (binary_expression "dVar29 < *(double *)(puVar2 + 0x1410)" (identifier "dVar29") (< "<") (pointer_expression "*(double *)(puVar2 + 0x1410)" (* "*") (cast_expression "(double *)(puVar2 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1410)" (( "(") (binary_expression "puVar2 + 0x1410" (identifier "puVar2") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n            uVar21 = (uint)dVar29;\n          }" ({ "{") (expression_statement "uVar21 = (uint)dVar29;" (assignment_expression "uVar21 = (uint)dVar29" (identifier "uVar21") (= "=") (cast_expression "(uint)dVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar29"))) (; ";")) (} "}")) (else_clause "else {\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }" (else "else") (compound_statement "{\n            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;\n          }" ({ "{") (expression_statement "uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;" (assignment_expression "uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000" (identifier "uVar21") (= "=") (binary_expression "(int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar29 - *(double *)(puVar2 + 0x1410))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar29 - *(double *)(puVar2 + 0x1410))" (( "(") (binary_expression "dVar29 - *(double *)(puVar2 + 0x1410)" (identifier "dVar29") (- "-") (pointer_expression "*(double *)(puVar2 + 0x1410)" (* "*") (cast_expression "(double *)(puVar2 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1410)" (( "(") (binary_expression "puVar2 + 0x1410" (identifier "puVar2") (+ "+") (number_literal "0x1410")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "bVar17 = (byte)(uVar21 >> 0x18);" (assignment_expression "bVar17 = (byte)(uVar21 >> 0x18)" (identifier "bVar17") (= "=") (call_expression "(byte)(uVar21 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 0x18)" (( "(") (binary_expression "uVar21 >> 0x18" (identifier "uVar21") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)(uVar21 >> 0x10);" (assignment_expression "bVar13 = (byte)(uVar21 >> 0x10)" (identifier "bVar13") (= "=") (call_expression "(byte)(uVar21 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 0x10)" (( "(") (binary_expression "uVar21 >> 0x10" (identifier "uVar21") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)(uVar21 >> 8);" (assignment_expression "bVar12 = (byte)(uVar21 >> 8)" (identifier "bVar12") (= "=") (call_expression "(byte)(uVar21 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar21 >> 8)" (( "(") (binary_expression "uVar21 >> 8" (identifier "uVar21") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar14 = (byte)uVar21;" (assignment_expression "bVar14 = (byte)uVar21" (identifier "bVar14") (= "=") (cast_expression "(byte)uVar21" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar21"))) (; ";")) (if_statement "if (param_2[0x11] == 1) goto LAB_00166084;" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00166084;" (goto "goto") (statement_identifier "LAB_00166084") (; ";"))) (labeled_statement "LAB_00165e24:\n          param_6[0xc] = bVar17;" (statement_identifier "LAB_00165e24") (: ":") (expression_statement "param_6[0xc] = bVar17;" (assignment_expression "param_6[0xc] = bVar17" (subscript_expression "param_6[0xc]" (identifier "param_6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "bVar17")) (; ";"))) (expression_statement "param_6[0xd] = bVar13;" (assignment_expression "param_6[0xd] = bVar13" (subscript_expression "param_6[0xd]" (identifier "param_6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (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] = bVar14;" (assignment_expression "param_6[0xf] = bVar14" (subscript_expression "param_6[0xf]" (identifier "param_6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (} "}")))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_6 = param_6 + param_2[10] + 0x10;" (assignment_expression "param_6 = param_6 + param_2[10] + 0x10" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[10] + 0x10" (binary_expression "param_6 + param_2[10]" (identifier "param_6") (+ "+") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]"))) (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" (* "*") (cast_expression "(int *)(param_1 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c0)" (( "(") (binary_expression "param_1 + 0x2c0" (identifier "param_1") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (if_statement "if (iVar22 == param_4) {\n          return;\n        }" (if "if") (parenthesized_expression "(iVar22 == param_4)" (( "(") (binary_expression "iVar22 == param_4" (identifier "iVar22") (== "==") (identifier "param_4")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (if_statement "if (uVar21 != 0x40) goto LAB_00165538;" (if "if") (parenthesized_expression "(uVar21 != 0x40)" (( "(") (binary_expression "uVar21 != 0x40" (identifier "uVar21") (!= "!=") (number_literal "0x40")) () ")")) (goto_statement "goto LAB_00165538;" (goto "goto") (statement_identifier "LAB_00165538") (; ";"))) (if_statement "if (param_2[2] == 1) {\n      if (param_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\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_4 < 1) {\n        return;\n      }\n      iVar22 = 0;\n      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);\n      do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);\n      return;\n    }" ({ "{") (if_statement "if (param_4 < 1) {\n        return;\n      }" (if "if") (parenthesized_expression "(param_4 < 1)" (( "(") (binary_expression "param_4 < 1" (identifier "param_4") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" (identifier "fVar31") (= "=") (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" (* "*") (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a50" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a50")) () ")"))))) (; ";")) (do_statement "do {\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      } while (iVar22 != param_4);" (do "do") (compound_statement "{\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }\n        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }\n        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }\n        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);\n        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);\n        bVar6 = (byte)((ulonglong)dVar25 >> 8);\n        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);\n        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);\n        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);\n        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);\n        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);\n        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);\n        if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }\n        iVar22 = iVar22 + 1;\n        param_6 = param_6 + param_2[10] + 0x20;\n        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n      }" ({ "{") (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (identifier "dVar25") (= "=") (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *\n                 *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 8" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (* "*") (pointer_expression "*(double *)(param_2 + 0x12)" (* "*") (cast_expression "(double *)(param_2 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x12)" (( "(") (binary_expression "param_2 + 0x12" (identifier "param_2") (+ "+") (number_literal "0x12")) () ")"))))) (+ "+") (pointer_expression "*(double *)(param_2 + 4)" (* "*") (cast_expression "(double *)(param_2 + 4)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "bVar13 = (byte)((ulonglong)dVar25 >> 0x20);" (assignment_expression "bVar13 = (byte)((ulonglong)dVar25 >> 0x20)" (identifier "bVar13") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x20" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "bVar6 = (byte)((ulonglong)dVar25 >> 8);" (assignment_expression "bVar6 = (byte)((ulonglong)dVar25 >> 8)" (identifier "bVar6") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 8)" (( "(") (binary_expression "(ulonglong)dVar25 >> 8" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar20 = (byte)((ulonglong)dVar25 >> 0x10);" (assignment_expression "bVar20 = (byte)((ulonglong)dVar25 >> 0x10)" (identifier "bVar20") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x10" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar14 = (byte)((ulonglong)dVar25 >> 0x18);" (assignment_expression "bVar14 = (byte)((ulonglong)dVar25 >> 0x18)" (identifier "bVar14") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x18" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar18 = (byte)((ulonglong)dVar25 >> 0x28);" (assignment_expression "bVar18 = (byte)((ulonglong)dVar25 >> 0x28)" (identifier "bVar18") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x28" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "bVar17 = (byte)((ulonglong)dVar25 >> 0x30);" (assignment_expression "bVar17 = (byte)((ulonglong)dVar25 >> 0x30)" (identifier "bVar17") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x30" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)((ulonglong)dVar25 >> 0x38);" (assignment_expression "bVar12 = (byte)((ulonglong)dVar25 >> 0x38)" (identifier "bVar12") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x38" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == 1) {\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }\n        else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          *param_6 = bVar12;\n          param_6[1] = bVar17;\n          param_6[2] = bVar18;\n          param_6[3] = bVar13;\n          param_6[4] = bVar14;\n          param_6[5] = bVar20;\n          param_6[6] = bVar6;\n          param_6[7] = SUB81(dVar25,0);\n        }" ({ "{") (expression_statement "*param_6 = bVar12;" (assignment_expression "*param_6 = bVar12" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[1] = bVar17;" (assignment_expression "param_6[1] = bVar17" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (expression_statement "param_6[2] = bVar18;" (assignment_expression "param_6[2] = bVar18" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar18")) (; ";")) (expression_statement "param_6[3] = bVar13;" (assignment_expression "param_6[3] = bVar13" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "param_6[4] = bVar14;" (assignment_expression "param_6[4] = bVar14" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "param_6[5] = bVar20;" (assignment_expression "param_6[5] = bVar20" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar20")) (; ";")) (expression_statement "param_6[6] = bVar6;" (assignment_expression "param_6[6] = bVar6" (subscript_expression "param_6[6]" (identifier "param_6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar6")) (; ";")) (expression_statement "param_6[7] = SUB81(dVar25,0);" (assignment_expression "param_6[7] = SUB81(dVar25,0)" (subscript_expression "param_6[7]" (identifier "param_6") ([ "[") (number_literal "7") (] "]")) (= "=") (call_expression "SUB81(dVar25,0)" (identifier "SUB81") (argument_list "(dVar25,0)" (( "(") (identifier "dVar25") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }" (else "else") (compound_statement "{\n          *param_6 = SUB81(dVar25,0);\n          param_6[1] = bVar6;\n          param_6[2] = bVar20;\n          param_6[3] = bVar14;\n          param_6[4] = bVar13;\n          param_6[5] = bVar18;\n          param_6[6] = bVar17;\n          param_6[7] = bVar12;\n        }" ({ "{") (expression_statement "*param_6 = SUB81(dVar25,0);" (assignment_expression "*param_6 = SUB81(dVar25,0)" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (call_expression "SUB81(dVar25,0)" (identifier "SUB81") (argument_list "(dVar25,0)" (( "(") (identifier "dVar25") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_6[1] = bVar6;" (assignment_expression "param_6[1] = bVar6" (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar6")) (; ";")) (expression_statement "param_6[2] = bVar20;" (assignment_expression "param_6[2] = bVar20" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar20")) (; ";")) (expression_statement "param_6[3] = bVar14;" (assignment_expression "param_6[3] = bVar14" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "param_6[4] = bVar13;" (assignment_expression "param_6[4] = bVar13" (subscript_expression "param_6[4]" (identifier "param_6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "param_6[5] = bVar18;" (assignment_expression "param_6[5] = bVar18" (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar18")) (; ";")) (expression_statement "param_6[6] = bVar17;" (assignment_expression "param_6[6] = bVar17" (subscript_expression "param_6[6]" (identifier "param_6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (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 "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (identifier "dVar25") (= "=") (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *\n                 *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (* "*") (pointer_expression "*(double *)(param_2 + 0x12)" (* "*") (cast_expression "(double *)(param_2 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x12)" (( "(") (binary_expression "param_2 + 0x12" (identifier "param_2") (+ "+") (number_literal "0x12")) () ")"))))) (+ "+") (pointer_expression "*(double *)(param_2 + 4)" (* "*") (cast_expression "(double *)(param_2 + 4)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)dVar25 & 0xff000000ff)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 & 0xff000000ff)" (( "(") (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (& "&") (number_literal "0xff000000ff")) () ")")))) (; ";")) (expression_statement "bVar6 = (byte)((ulonglong)dVar25 >> 8);" (assignment_expression "bVar6 = (byte)((ulonglong)dVar25 >> 8)" (identifier "bVar6") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 8)" (( "(") (binary_expression "(ulonglong)dVar25 >> 8" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar20 = (byte)((ulonglong)dVar25 >> 0x10);" (assignment_expression "bVar20 = (byte)((ulonglong)dVar25 >> 0x10)" (identifier "bVar20") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x10" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)((ulonglong)dVar25 >> 0x18);" (assignment_expression "bVar12 = (byte)((ulonglong)dVar25 >> 0x18)" (identifier "bVar12") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x18" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);" (assignment_expression "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (identifier "bVar18") (= "=") (call_expression "(byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (( "(") (binary_expression "((ulonglong)dVar25 & 0xff000000ff) >> 0x20" (parenthesized_expression "((ulonglong)dVar25 & 0xff000000ff)" (( "(") (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (& "&") (number_literal "0xff000000ff")) () ")")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "bVar17 = (byte)((ulonglong)dVar25 >> 0x28);" (assignment_expression "bVar17 = (byte)((ulonglong)dVar25 >> 0x28)" (identifier "bVar17") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x28" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "bVar14 = (byte)((ulonglong)dVar25 >> 0x30);" (assignment_expression "bVar14 = (byte)((ulonglong)dVar25 >> 0x30)" (identifier "bVar14") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x30" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)((ulonglong)dVar25 >> 0x38);" (assignment_expression "bVar13 = (byte)((ulonglong)dVar25 >> 0x38)" (identifier "bVar13") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x38" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == 1) {\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }\n        else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[8] = bVar13;\n          param_6[9] = bVar14;\n          param_6[10] = bVar17;\n          param_6[0xb] = bVar18;\n          param_6[0xc] = bVar12;\n          param_6[0xd] = bVar20;\n          param_6[0xe] = bVar6;\n          param_6[0xf] = bVar19;\n        }" ({ "{") (expression_statement "param_6[8] = bVar13;" (assignment_expression "param_6[8] = bVar13" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (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")) (; ";")) (expression_statement "param_6[10] = bVar17;" (assignment_expression "param_6[10] = bVar17" (subscript_expression "param_6[10]" (identifier "param_6") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (expression_statement "param_6[0xb] = bVar18;" (assignment_expression "param_6[0xb] = bVar18" (subscript_expression "param_6[0xb]" (identifier "param_6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "bVar18")) (; ";")) (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] = bVar20;" (assignment_expression "param_6[0xd] = bVar20" (subscript_expression "param_6[0xd]" (identifier "param_6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "bVar20")) (; ";")) (expression_statement "param_6[0xe] = bVar6;" (assignment_expression "param_6[0xe] = bVar6" (subscript_expression "param_6[0xe]" (identifier "param_6") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "bVar6")) (; ";")) (expression_statement "param_6[0xf] = bVar19;" (assignment_expression "param_6[0xf] = bVar19" (subscript_expression "param_6[0xf]" (identifier "param_6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (} "}")) (else_clause "else {\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }" (else "else") (compound_statement "{\n          param_6[8] = bVar19;\n          param_6[9] = bVar6;\n          param_6[10] = bVar20;\n          param_6[0xb] = bVar12;\n          param_6[0xc] = bVar18;\n          param_6[0xd] = bVar17;\n          param_6[0xe] = bVar14;\n          param_6[0xf] = bVar13;\n        }" ({ "{") (expression_statement "param_6[8] = bVar19;" (assignment_expression "param_6[8] = bVar19" (subscript_expression "param_6[8]" (identifier "param_6") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_6[9] = bVar6;" (assignment_expression "param_6[9] = bVar6" (subscript_expression "param_6[9]" (identifier "param_6") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "bVar6")) (; ";")) (expression_statement "param_6[10] = bVar20;" (assignment_expression "param_6[10] = bVar20" (subscript_expression "param_6[10]" (identifier "param_6") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "bVar20")) (; ";")) (expression_statement "param_6[0xb] = bVar12;" (assignment_expression "param_6[0xb] = bVar12" (subscript_expression "param_6[0xb]" (identifier "param_6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[0xc] = bVar18;" (assignment_expression "param_6[0xc] = bVar18" (subscript_expression "param_6[0xc]" (identifier "param_6") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "bVar18")) (; ";")) (expression_statement "param_6[0xd] = bVar17;" (assignment_expression "param_6[0xd] = bVar17" (subscript_expression "param_6[0xd]" (identifier "param_6") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (expression_statement "param_6[0xe] = bVar14;" (assignment_expression "param_6[0xe] = bVar14" (subscript_expression "param_6[0xe]" (identifier "param_6") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "param_6[0xf] = bVar13;" (assignment_expression "param_6[0xf] = bVar13" (subscript_expression "param_6[0xf]" (identifier "param_6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (} "}")))) (expression_statement "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);" (assignment_expression "dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (identifier "dVar25") (= "=") (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *\n                 *(double *)(param_2 + 0x12)" (cast_expression "(double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4)" (( "(") (binary_expression "param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (* "*") (pointer_expression "*(double *)(param_2 + 0x12)" (* "*") (cast_expression "(double *)(param_2 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x12)" (( "(") (binary_expression "param_2 + 0x12" (identifier "param_2") (+ "+") (number_literal "0x12")) () ")"))))) (+ "+") (pointer_expression "*(double *)(param_2 + 4)" (* "*") (cast_expression "(double *)(param_2 + 4)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)dVar25 & 0xff000000ff)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 & 0xff000000ff)" (( "(") (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (& "&") (number_literal "0xff000000ff")) () ")")))) (; ";")) (expression_statement "bVar6 = (byte)((ulonglong)dVar25 >> 8);" (assignment_expression "bVar6 = (byte)((ulonglong)dVar25 >> 8)" (identifier "bVar6") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 8)" (( "(") (binary_expression "(ulonglong)dVar25 >> 8" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar20 = (byte)((ulonglong)dVar25 >> 0x10);" (assignment_expression "bVar20 = (byte)((ulonglong)dVar25 >> 0x10)" (identifier "bVar20") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x10" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)((ulonglong)dVar25 >> 0x18);" (assignment_expression "bVar12 = (byte)((ulonglong)dVar25 >> 0x18)" (identifier "bVar12") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x18" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);" (assignment_expression "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (identifier "bVar18") (= "=") (call_expression "(byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (( "(") (binary_expression "((ulonglong)dVar25 & 0xff000000ff) >> 0x20" (parenthesized_expression "((ulonglong)dVar25 & 0xff000000ff)" (( "(") (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (& "&") (number_literal "0xff000000ff")) () ")")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "bVar17 = (byte)((ulonglong)dVar25 >> 0x28);" (assignment_expression "bVar17 = (byte)((ulonglong)dVar25 >> 0x28)" (identifier "bVar17") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x28" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "bVar14 = (byte)((ulonglong)dVar25 >> 0x30);" (assignment_expression "bVar14 = (byte)((ulonglong)dVar25 >> 0x30)" (identifier "bVar14") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x30" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)((ulonglong)dVar25 >> 0x38);" (assignment_expression "bVar13 = (byte)((ulonglong)dVar25 >> 0x38)" (identifier "bVar13") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x38" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == 1) {\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }\n        else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[0x10] = bVar13;\n          param_6[0x11] = bVar14;\n          param_6[0x12] = bVar17;\n          param_6[0x13] = bVar18;\n          param_6[0x14] = bVar12;\n          param_6[0x15] = bVar20;\n          param_6[0x16] = bVar6;\n          param_6[0x17] = bVar19;\n        }" ({ "{") (expression_statement "param_6[0x10] = bVar13;" (assignment_expression "param_6[0x10] = bVar13" (subscript_expression "param_6[0x10]" (identifier "param_6") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (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")) (; ";")) (expression_statement "param_6[0x12] = bVar17;" (assignment_expression "param_6[0x12] = bVar17" (subscript_expression "param_6[0x12]" (identifier "param_6") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (expression_statement "param_6[0x13] = bVar18;" (assignment_expression "param_6[0x13] = bVar18" (subscript_expression "param_6[0x13]" (identifier "param_6") ([ "[") (number_literal "0x13") (] "]")) (= "=") (identifier "bVar18")) (; ";")) (expression_statement "param_6[0x14] = bVar12;" (assignment_expression "param_6[0x14] = bVar12" (subscript_expression "param_6[0x14]" (identifier "param_6") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[0x15] = bVar20;" (assignment_expression "param_6[0x15] = bVar20" (subscript_expression "param_6[0x15]" (identifier "param_6") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "bVar20")) (; ";")) (expression_statement "param_6[0x16] = bVar6;" (assignment_expression "param_6[0x16] = bVar6" (subscript_expression "param_6[0x16]" (identifier "param_6") ([ "[") (number_literal "0x16") (] "]")) (= "=") (identifier "bVar6")) (; ";")) (expression_statement "param_6[0x17] = bVar19;" (assignment_expression "param_6[0x17] = bVar19" (subscript_expression "param_6[0x17]" (identifier "param_6") ([ "[") (number_literal "0x17") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (} "}")) (else_clause "else {\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }" (else "else") (compound_statement "{\n          param_6[0x10] = bVar19;\n          param_6[0x11] = bVar6;\n          param_6[0x12] = bVar20;\n          param_6[0x13] = bVar12;\n          param_6[0x14] = bVar18;\n          param_6[0x15] = bVar17;\n          param_6[0x16] = bVar14;\n          param_6[0x17] = bVar13;\n        }" ({ "{") (expression_statement "param_6[0x10] = bVar19;" (assignment_expression "param_6[0x10] = bVar19" (subscript_expression "param_6[0x10]" (identifier "param_6") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_6[0x11] = bVar6;" (assignment_expression "param_6[0x11] = bVar6" (subscript_expression "param_6[0x11]" (identifier "param_6") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "bVar6")) (; ";")) (expression_statement "param_6[0x12] = bVar20;" (assignment_expression "param_6[0x12] = bVar20" (subscript_expression "param_6[0x12]" (identifier "param_6") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "bVar20")) (; ";")) (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[0x14] = bVar18;" (assignment_expression "param_6[0x14] = bVar18" (subscript_expression "param_6[0x14]" (identifier "param_6") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "bVar18")) (; ";")) (expression_statement "param_6[0x15] = bVar17;" (assignment_expression "param_6[0x15] = bVar17" (subscript_expression "param_6[0x15]" (identifier "param_6") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (expression_statement "param_6[0x16] = bVar14;" (assignment_expression "param_6[0x16] = bVar14" (subscript_expression "param_6[0x16]" (identifier "param_6") ([ "[") (number_literal "0x16") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "param_6[0x17] = bVar13;" (assignment_expression "param_6[0x17] = bVar13" (subscript_expression "param_6[0x17]" (identifier "param_6") ([ "[") (number_literal "0x17") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (} "}")))) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }\n        else {\n          dVar25 = 0.0;\n        }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n          dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));\n        }" ({ "{") (expression_statement "dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));" (assignment_expression "dVar25 = (double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" (identifier "dVar25") (= "=") (cast_expression "(double)(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4))" (( "(") (binary_expression "fVar31 - *(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (identifier "fVar31") (- "-") (pointer_expression "*(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (* "*") (cast_expression "(float *)(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)" (( "(") (binary_expression "param_5 +\n                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2d0) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2d0) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2d0) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          dVar25 = 0.0;\n        }" (else "else") (compound_statement "{\n          dVar25 = 0.0;\n        }" ({ "{") (expression_statement "dVar25 = 0.0;" (assignment_expression "dVar25 = 0.0" (identifier "dVar25") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (expression_statement "dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);" (assignment_expression "dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (identifier "dVar25") (= "=") (binary_expression "dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4)" (binary_expression "dVar25 * *(double *)(param_2 + 0x12)" (identifier "dVar25") (* "*") (pointer_expression "*(double *)(param_2 + 0x12)" (* "*") (cast_expression "(double *)(param_2 + 0x12)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x12)" (( "(") (binary_expression "param_2 + 0x12" (identifier "param_2") (+ "+") (number_literal "0x12")) () ")"))))) (+ "+") (pointer_expression "*(double *)(param_2 + 4)" (* "*") (cast_expression "(double *)(param_2 + 4)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)dVar25 & 0xff000000ff)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 & 0xff000000ff)" (( "(") (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (& "&") (number_literal "0xff000000ff")) () ")")))) (; ";")) (expression_statement "bVar6 = (byte)((ulonglong)dVar25 >> 8);" (assignment_expression "bVar6 = (byte)((ulonglong)dVar25 >> 8)" (identifier "bVar6") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 8)" (( "(") (binary_expression "(ulonglong)dVar25 >> 8" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar20 = (byte)((ulonglong)dVar25 >> 0x10);" (assignment_expression "bVar20 = (byte)((ulonglong)dVar25 >> 0x10)" (identifier "bVar20") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x10" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar12 = (byte)((ulonglong)dVar25 >> 0x18);" (assignment_expression "bVar12 = (byte)((ulonglong)dVar25 >> 0x18)" (identifier "bVar12") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x18" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);" (assignment_expression "bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (identifier "bVar18") (= "=") (call_expression "(byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(((ulonglong)dVar25 & 0xff000000ff) >> 0x20)" (( "(") (binary_expression "((ulonglong)dVar25 & 0xff000000ff) >> 0x20" (parenthesized_expression "((ulonglong)dVar25 & 0xff000000ff)" (( "(") (binary_expression "(ulonglong)dVar25 & 0xff000000ff" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (& "&") (number_literal "0xff000000ff")) () ")")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "bVar17 = (byte)((ulonglong)dVar25 >> 0x28);" (assignment_expression "bVar17 = (byte)((ulonglong)dVar25 >> 0x28)" (identifier "bVar17") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x28" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "bVar14 = (byte)((ulonglong)dVar25 >> 0x30);" (assignment_expression "bVar14 = (byte)((ulonglong)dVar25 >> 0x30)" (identifier "bVar14") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x30" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "bVar13 = (byte)((ulonglong)dVar25 >> 0x38);" (assignment_expression "bVar13 = (byte)((ulonglong)dVar25 >> 0x38)" (identifier "bVar13") (= "=") (call_expression "(byte)((ulonglong)dVar25 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar25 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar25 >> 0x38" (cast_expression "(ulonglong)dVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar25")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (if_statement "if (param_2[0x11] == 1) {\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }\n        else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }" (if "if") (parenthesized_expression "(param_2[0x11] == 1)" (( "(") (binary_expression "param_2[0x11] == 1" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          param_6[0x18] = bVar13;\n          param_6[0x19] = bVar14;\n          param_6[0x1a] = bVar17;\n          param_6[0x1b] = bVar18;\n          param_6[0x1c] = bVar12;\n          param_6[0x1d] = bVar20;\n          param_6[0x1e] = bVar6;\n          param_6[0x1f] = bVar19;\n        }" ({ "{") (expression_statement "param_6[0x18] = bVar13;" (assignment_expression "param_6[0x18] = bVar13" (subscript_expression "param_6[0x18]" (identifier "param_6") ([ "[") (number_literal "0x18") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (expression_statement "param_6[0x19] = bVar14;" (assignment_expression "param_6[0x19] = bVar14" (subscript_expression "param_6[0x19]" (identifier "param_6") ([ "[") (number_literal "0x19") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "param_6[0x1a] = bVar17;" (assignment_expression "param_6[0x1a] = bVar17" (subscript_expression "param_6[0x1a]" (identifier "param_6") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (expression_statement "param_6[0x1b] = bVar18;" (assignment_expression "param_6[0x1b] = bVar18" (subscript_expression "param_6[0x1b]" (identifier "param_6") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (identifier "bVar18")) (; ";")) (expression_statement "param_6[0x1c] = bVar12;" (assignment_expression "param_6[0x1c] = bVar12" (subscript_expression "param_6[0x1c]" (identifier "param_6") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[0x1d] = bVar20;" (assignment_expression "param_6[0x1d] = bVar20" (subscript_expression "param_6[0x1d]" (identifier "param_6") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (identifier "bVar20")) (; ";")) (expression_statement "param_6[0x1e] = bVar6;" (assignment_expression "param_6[0x1e] = bVar6" (subscript_expression "param_6[0x1e]" (identifier "param_6") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (identifier "bVar6")) (; ";")) (expression_statement "param_6[0x1f] = bVar19;" (assignment_expression "param_6[0x1f] = bVar19" (subscript_expression "param_6[0x1f]" (identifier "param_6") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (} "}")) (else_clause "else {\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }" (else "else") (compound_statement "{\n          param_6[0x18] = bVar19;\n          param_6[0x19] = bVar6;\n          param_6[0x1a] = bVar20;\n          param_6[0x1b] = bVar12;\n          param_6[0x1c] = bVar18;\n          param_6[0x1d] = bVar17;\n          param_6[0x1e] = bVar14;\n          param_6[0x1f] = bVar13;\n        }" ({ "{") (expression_statement "param_6[0x18] = bVar19;" (assignment_expression "param_6[0x18] = bVar19" (subscript_expression "param_6[0x18]" (identifier "param_6") ([ "[") (number_literal "0x18") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_6[0x19] = bVar6;" (assignment_expression "param_6[0x19] = bVar6" (subscript_expression "param_6[0x19]" (identifier "param_6") ([ "[") (number_literal "0x19") (] "]")) (= "=") (identifier "bVar6")) (; ";")) (expression_statement "param_6[0x1a] = bVar20;" (assignment_expression "param_6[0x1a] = bVar20" (subscript_expression "param_6[0x1a]" (identifier "param_6") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (identifier "bVar20")) (; ";")) (expression_statement "param_6[0x1b] = bVar12;" (assignment_expression "param_6[0x1b] = bVar12" (subscript_expression "param_6[0x1b]" (identifier "param_6") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "param_6[0x1c] = bVar18;" (assignment_expression "param_6[0x1c] = bVar18" (subscript_expression "param_6[0x1c]" (identifier "param_6") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (identifier "bVar18")) (; ";")) (expression_statement "param_6[0x1d] = bVar17;" (assignment_expression "param_6[0x1d] = bVar17" (subscript_expression "param_6[0x1d]" (identifier "param_6") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (identifier "bVar17")) (; ";")) (expression_statement "param_6[0x1e] = bVar14;" (assignment_expression "param_6[0x1e] = bVar14" (subscript_expression "param_6[0x1e]" (identifier "param_6") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (identifier "bVar14")) (; ";")) (expression_statement "param_6[0x1f] = bVar13;" (assignment_expression "param_6[0x1f] = bVar13" (subscript_expression "param_6[0x1f]" (identifier "param_6") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (identifier "bVar13")) (; ";")) (} "}")))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_6 = param_6 + param_2[10] + 0x20;" (assignment_expression "param_6 = param_6 + param_2[10] + 0x20" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[10] + 0x20" (binary_expression "param_6 + param_2[10]" (identifier "param_6") (+ "+") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]"))) (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" (* "*") (cast_expression "(int *)(param_1 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c0)" (( "(") (binary_expression "param_1 + 0x2c0" (identifier "param_1") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar22 != param_4)" (( "(") (binary_expression "iVar22 != param_4" (identifier "iVar22") (!= "!=") (identifier "param_4")) () ")")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar21 < 0x41) {\n    uVar8 = uVar21;\n  }" (if "if") (parenthesized_expression "(uVar21 < 0x41)" (( "(") (binary_expression "uVar21 < 0x41" (identifier "uVar21") (< "<") (number_literal "0x41")) () ")")) (compound_statement "{\n    uVar8 = uVar21;\n  }" ({ "{") (expression_statement "uVar8 = uVar21;" (assignment_expression "uVar8 = uVar21" (identifier "uVar8") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 - 1" (identifier "uVar8") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar15 = 2 << (uVar8 & 0x1f);" (assignment_expression "uVar15 = 2 << (uVar8 & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "2 << (uVar8 & 0x1f)" (number_literal "2") (<< "<<") (parenthesized_expression "(uVar8 & 0x1f)" (( "(") (binary_expression "uVar8 & 0x1f" (identifier "uVar8") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar9 = uVar15;" (assignment_expression "uVar9 = uVar15" (identifier "uVar9") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "uVar23 = 1 >> (~uVar8 & 0x1f);" (assignment_expression "uVar23 = 1 >> (~uVar8 & 0x1f)" (identifier "uVar23") (= "=") (binary_expression "1 >> (~uVar8 & 0x1f)" (number_literal "1") (>> ">>") (parenthesized_expression "(~uVar8 & 0x1f)" (( "(") (binary_expression "~uVar8 & 0x1f" (unary_expression "~uVar8" (~ "~") (identifier "uVar8")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((uVar8 & 0x20) != 0) {\n    uVar9 = 0;\n    uVar23 = uVar15;\n  }" (if "if") (parenthesized_expression "((uVar8 & 0x20) != 0)" (( "(") (binary_expression "(uVar8 & 0x20) != 0" (parenthesized_expression "(uVar8 & 0x20)" (( "(") (binary_expression "uVar8 & 0x20" (identifier "uVar8") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar9 = 0;\n    uVar23 = uVar15;\n  }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar23 = uVar15;" (assignment_expression "uVar23 = uVar15" (identifier "uVar23") (= "=") (identifier "uVar15")) (; ";")) (} "}"))) (expression_statement "local_b8 = uVar9 - 1;" (assignment_expression "local_b8 = uVar9 - 1" (identifier "local_b8") (= "=") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) (; ";")) (expression_statement "local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1);" (assignment_expression "local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1)" (identifier "local_c0") (= "=") (binary_expression "(uint)(local_b8 < uVar9) + (uVar23 - 1)" (call_expression "(uint)(local_b8 < uVar9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_b8 < uVar9)" (( "(") (binary_expression "local_b8 < uVar9" (identifier "local_b8") (< "<") (identifier "uVar9")) () ")"))) (+ "+") (parenthesized_expression "(uVar23 - 1)" (( "(") (binary_expression "uVar23 - 1" (identifier "uVar23") (- "-") (number_literal "1")) () ")")))) (; ";")) (labeled_statement "LAB_0016507c:\n  if (param_4 < 1) {\n    return;\n  }" (statement_identifier "LAB_0016507c") (: ":") (if_statement "if (param_4 < 1) {\n    return;\n  }" (if "if") (parenthesized_expression "(param_4 < 1)" (( "(") (binary_expression "param_4 < 1" (identifier "param_4") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "uVar36 = 0;" (assignment_expression "uVar36 = 0" (identifier "uVar36") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);" (assignment_expression "dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a58)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a58)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a58)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a58" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a58")) () ")"))))) (; ";")) (expression_statement "dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);" (assignment_expression "dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60)" (identifier "dVar29") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1a60)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1a60)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a60)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a60" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a60")) () ")"))))) (; ";")) (expression_statement "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);" (assignment_expression "dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400)" (identifier "dVar37") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1400" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);" (assignment_expression "fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50)" (identifier "fVar31") (= "=") (pointer_expression "*(float *)(PTR_LAB_003a88e0 + 0x1a50)" (* "*") (cast_expression "(float *)(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1a50)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1a50" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1a50")) () ")"))))) (; ";")) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" (* "*") (cast_expression "(int *)(iVar24 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x20)" (( "(") (binary_expression "iVar24 + 0x20" (identifier "iVar24") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "dVar25 = dVar29;" (assignment_expression "dVar25 = dVar29" (identifier "dVar25") (= "=") (identifier "dVar29")) (; ";")) (expression_statement "dVar26 = dVar39;" (assignment_expression "dVar26 = dVar39" (identifier "dVar26") (= "=") (identifier "dVar39")) (; ";")) (expression_statement "dVar27 = dVar37;" (assignment_expression "dVar27 = dVar37" (identifier "dVar27") (= "=") (identifier "dVar37")) (; ";")) (expression_statement "dVar28 = dVar29;" (assignment_expression "dVar28 = dVar29" (identifier "dVar28") (= "=") (identifier "dVar29")) (; ";")) (if_statement "if (!NAN(fVar33)) goto LAB_001650f0;" (if "if") (parenthesized_expression "(!NAN(fVar33))" (( "(") (unary_expression "!NAN(fVar33)" (! "!") (call_expression "NAN(fVar33)" (identifier "NAN") (argument_list "(fVar33)" (( "(") (identifier "fVar33") () ")")))) () ")")) (goto_statement "goto LAB_001650f0;" (goto "goto") (statement_identifier "LAB_001650f0") (; ";"))) (labeled_statement "LAB_00165520:\n  do {\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  } while (NAN(fVar33));" (statement_identifier "LAB_00165520") (: ":") (do_statement "do {\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  } while (NAN(fVar33));" (do "do") (compound_statement "{\n    uVar43 = 0;\nLAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    uVar23 = param_2[0x15];\n    if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);\n    if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }\n    iVar22 = iVar22 + 1;\n    param_6 = param_6 + param_2[10];\n    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;\n    if (iVar22 == param_4) {\n      return;\n    }\n    iVar24 = *(int *)(param_1 + 0x2d0);\n    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);\n    uVar21 = *param_2;\n  }" ({ "{") (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" (identifier "uVar43") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00165130:\n    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" (statement_identifier "LAB_00165130") (: ":") (expression_statement "uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" (assignment_expression "uVar8 = (uint)((ulonglong)uVar43 >> 0x20)" (identifier "uVar8") (= "=") (call_expression "(uint)((ulonglong)uVar43 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar43 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar43 >> 0x20" (cast_expression "(ulonglong)uVar43" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar43")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" (identifier "uVar23") (= "=") (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (if_statement "if (uVar23 == 0) {\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar23 = 8;\n      param_2[0x15] = 8;\n    }" ({ "{") (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" (identifier "uVar23") (= "=") (number_literal "8")) (; ";")) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (if_statement "if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" (if "if") (parenthesized_expression "((int)uVar21 < 1)" (( "(") (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      if (!NAN(fVar33)) goto LAB_00165204;\n      uVar43 = 0;\n    }" ({ "{") (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" (* "*") (cast_expression "(int *)(iVar24 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x14)" (( "(") (binary_expression "iVar24 + 0x14" (identifier "iVar24") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (!NAN(fVar33)) goto LAB_00165204;" (if "if") (parenthesized_expression "(!NAN(fVar33))" (( "(") (unary_expression "!NAN(fVar33)" (! "!") (call_expression "NAN(fVar33)" (identifier "NAN") (argument_list "(fVar33)" (( "(") (identifier "fVar33") () ")")))) () ")")) (goto_statement "goto LAB_00165204;" (goto "goto") (statement_identifier "LAB_00165204") (; ";"))) (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" (identifier "uVar43") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" (else "else") (compound_statement "{\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" ({ "{") (do_statement "do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);" (do "do") (compound_statement "{\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }\n        uVar23 = param_2[0x15];\n      }" ({ "{") (while_statement "while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001651e4;\n        }" ({ "{") (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" (identifier "uVar9") (= "=") (identifier "uVar23")) (; ";")) (if_statement "if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }" (if "if") (parenthesized_expression "(uVar21 <= uVar23)" (( "(") (binary_expression "uVar21 <= uVar23" (identifier "uVar21") (<= "<=") (identifier "uVar23")) () ")")) (compound_statement "{\n            uVar9 = uVar21;\n          }" ({ "{") (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" (identifier "uVar9") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" (identifier "uVar15") (= "=") (binary_expression "uVar21 - uVar9" (identifier "uVar21") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" (identifier "uVar21") (= "=") (identifier "uVar15")) (; ";")) (if_statement "if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }" (if "if") (parenthesized_expression "((int)uVar15 < 0)" (( "(") (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            uVar21 = 0;\n          }" ({ "{") (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (uVar23 == 8) {\n            *param_6 = 0;\n          }" (if "if") (parenthesized_expression "(uVar23 == 8)" (( "(") (binary_expression "uVar23 == 8" (identifier "uVar23") (== "==") (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 "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f)" (parenthesized_expression "(uVar8 << 1)" (( "(") (binary_expression "uVar8 << 1" (identifier "uVar8") (<< "<<") (number_literal "1")) () ")")) (<< "<<") (parenthesized_expression "(~uVar21 & 0x1f)" (( "(") (binary_expression "~uVar21 & 0x1f" (unary_expression "~uVar21" (~ "~") (identifier "uVar21")) (& "&") (number_literal "0x1f")) () ")"))) (| "|") (binary_expression "(uint)uVar43 >> (uVar21 & 0x1f)" (cast_expression "(uint)uVar43" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar43")) (>> ">>") (parenthesized_expression "(uVar21 & 0x1f)" (( "(") (binary_expression "uVar21 & 0x1f" (identifier "uVar21") (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (if_statement "if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" (if "if") (parenthesized_expression "((uVar21 & 0x20) != 0)" (( "(") (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" (( "(") (binary_expression "uVar21 & 0x20" (identifier "uVar21") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" ({ "{") (expression_statement "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "uVar8 >> (uVar21 & 0x1f)" (identifier "uVar8") (>> ">>") (parenthesized_expression "(uVar21 & 0x1f)" (( "(") (binary_expression "uVar21 & 0x1f" (identifier "uVar21") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" (identifier "uVar23") (= "=") (binary_expression "uVar23 - uVar9" (identifier "uVar23") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (identifier "bVar13") (= "=") (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (( "(") (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" (( "(") (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << (uVar9 & 0x1f))" (( "(") (binary_expression "-1 << (uVar9 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "(uVar9 & 0x1f)" (( "(") (binary_expression "uVar9 & 0x1f" (identifier "uVar9") (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar10")) () ")")) (<< "<<") (parenthesized_expression "(uVar23 & 0x1f)" (( "(") (binary_expression "uVar23 & 0x1f" (identifier "uVar23") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }" (if "if") (parenthesized_expression "((uVar23 & 0x20) != 0)" (( "(") (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" (( "(") (binary_expression "uVar23 & 0x20" (identifier "uVar23") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            bVar13 = 0;\n          }" ({ "{") (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "bVar13 | *param_6" (identifier "bVar13") (| "|") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (if_statement "if (uVar23 != 0) break;" (if "if") (parenthesized_expression "(uVar23 != 0)" (( "(") (binary_expression "uVar23 != 0" (identifier "uVar23") (!= "!=") (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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" (identifier "uVar23") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar15 < 1) goto LAB_001651e4;" (if "if") (parenthesized_expression "((int)uVar15 < 1)" (( "(") (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_001651e4;" (goto "goto") (statement_identifier "LAB_001651e4") (; ";"))) (} "}"))) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" (identifier "uVar23") (= "=") (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar15)" (( "(") (binary_expression "0 < (int)uVar15" (number_literal "0") (< "<") (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15"))) () ")")) (; ";")) (labeled_statement "LAB_001651e4:\n      iVar24 = *(int *)(param_1 + 0x2d0);" (statement_identifier "LAB_001651e4") (: ":") (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";"))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x14) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 0x14) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 0x14) * 4" (pointer_expression "*(int *)(iVar24 + 0x14)" (* "*") (cast_expression "(int *)(iVar24 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x14)" (( "(") (binary_expression "iVar24 + 0x14" (identifier "iVar24") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" (identifier "uVar21") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (NAN(fVar33)) {\nLAB_001655cc:\n        uVar43 = 0;\n      }\n      else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" (if "if") (parenthesized_expression "(NAN(fVar33))" (( "(") (call_expression "NAN(fVar33)" (identifier "NAN") (argument_list "(fVar33)" (( "(") (identifier "fVar33") () ")"))) () ")")) (compound_statement "{\nLAB_001655cc:\n        uVar43 = 0;\n      }" ({ "{") (labeled_statement "LAB_001655cc:\n        uVar43 = 0;" (statement_identifier "LAB_001655cc") (: ":") (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" (identifier "uVar43") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" (else "else") (compound_statement "{\nLAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" ({ "{") (labeled_statement "LAB_00165204:\n        if (fVar33 <= (float)uVar36) goto LAB_001655cc;" (statement_identifier "LAB_00165204") (: ":") (if_statement "if (fVar33 <= (float)uVar36) goto LAB_001655cc;" (if "if") (parenthesized_expression "(fVar33 <= (float)uVar36)" (( "(") (binary_expression "fVar33 <= (float)uVar36" (identifier "fVar33") (<= "<=") (cast_expression "(float)uVar36" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar36"))) () ")")) (goto_statement "goto LAB_001655cc;" (goto "goto") (statement_identifier "LAB_001655cc") (; ";")))) (expression_statement "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);" (assignment_expression "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (identifier "dVar38") (= "=") (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8960" (* "*") (cast_expression "(code *)PTR_FUN_003a8960" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8960"))) () ")")) (argument_list "(local_c0,local_b8)" (( "(") (identifier "local_c0") (, ",") (identifier "local_b8") () ")"))))) (; ";")) (expression_statement "dVar38 = (dVar38 * (double)fVar33) / dVar39;" (assignment_expression "dVar38 = (dVar38 * (double)fVar33) / dVar39" (identifier "dVar38") (= "=") (binary_expression "(dVar38 * (double)fVar33) / dVar39" (parenthesized_expression "(dVar38 * (double)fVar33)" (( "(") (binary_expression "dVar38 * (double)fVar33" (identifier "dVar38") (* "*") (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33"))) () ")")) (/ "/") (identifier "dVar39"))) (; ";")) (if_statement "if (dVar38 < dVar28) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }" (if "if") (parenthesized_expression "(dVar38 < dVar28)" (( "(") (binary_expression "dVar38 < dVar28" (identifier "dVar38") (< "<") (identifier "dVar28")) () ")")) (compound_statement "{\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }" ({ "{") (expression_statement "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);" (assignment_expression "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" (identifier "uVar43") (= "=") (call_expression "(*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar38 + dVar37)" (( "(") (binary_expression "dVar38 + dVar37" (identifier "dVar38") (+ "+") (identifier "dVar37")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          uVar43 = 0xffffffffffffffff;\n        }" (else "else") (compound_statement "{\n          uVar43 = 0xffffffffffffffff;\n        }" ({ "{") (expression_statement "uVar43 = 0xffffffffffffffff;" (assignment_expression "uVar43 = 0xffffffffffffffff" (identifier "uVar43") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (} "}")))) (} "}")))) (if_statement "if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }" ({ "{") (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" (identifier "uVar23") (= "=") (number_literal "8")) (; ";")) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" (assignment_expression "uVar8 = (uint)((ulonglong)uVar43 >> 0x20)" (identifier "uVar8") (= "=") (call_expression "(uint)((ulonglong)uVar43 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar43 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar43 >> 0x20" (cast_expression "(ulonglong)uVar43" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar43")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if ((int)uVar21 < 1) {\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" (if "if") (parenthesized_expression "((int)uVar21 < 1)" (( "(") (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      if (!NAN(fVar33)) goto LAB_0016531c;\n      uVar43 = 0;\n    }" ({ "{") (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 8) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 8) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 8) * 4" (pointer_expression "*(int *)(iVar24 + 8)" (* "*") (cast_expression "(int *)(iVar24 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 8)" (( "(") (binary_expression "iVar24 + 8" (identifier "iVar24") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (!NAN(fVar33)) goto LAB_0016531c;" (if "if") (parenthesized_expression "(!NAN(fVar33))" (( "(") (unary_expression "!NAN(fVar33)" (! "!") (call_expression "NAN(fVar33)" (identifier "NAN") (argument_list "(fVar33)" (( "(") (identifier "fVar33") () ")")))) () ")")) (goto_statement "goto LAB_0016531c;" (goto "goto") (statement_identifier "LAB_0016531c") (; ";"))) (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" (identifier "uVar43") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" (else "else") (compound_statement "{\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);\n      uVar21 = *param_2;\n      if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }\n    }" ({ "{") (do_statement "do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);" (do "do") (compound_statement "{\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }\n        uVar23 = param_2[0x15];\n      }" ({ "{") (while_statement "while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_001652fc;\n        }" ({ "{") (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" (identifier "uVar9") (= "=") (identifier "uVar23")) (; ";")) (if_statement "if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }" (if "if") (parenthesized_expression "(uVar21 <= uVar23)" (( "(") (binary_expression "uVar21 <= uVar23" (identifier "uVar21") (<= "<=") (identifier "uVar23")) () ")")) (compound_statement "{\n            uVar9 = uVar21;\n          }" ({ "{") (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" (identifier "uVar9") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" (identifier "uVar15") (= "=") (binary_expression "uVar21 - uVar9" (identifier "uVar21") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" (identifier "uVar21") (= "=") (identifier "uVar15")) (; ";")) (if_statement "if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }" (if "if") (parenthesized_expression "((int)uVar15 < 0)" (( "(") (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            uVar21 = 0;\n          }" ({ "{") (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (uVar23 == 8) {\n            *param_6 = 0;\n          }" (if "if") (parenthesized_expression "(uVar23 == 8)" (( "(") (binary_expression "uVar23 == 8" (identifier "uVar23") (== "==") (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 "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f)" (parenthesized_expression "(uVar8 << 1)" (( "(") (binary_expression "uVar8 << 1" (identifier "uVar8") (<< "<<") (number_literal "1")) () ")")) (<< "<<") (parenthesized_expression "(~uVar21 & 0x1f)" (( "(") (binary_expression "~uVar21 & 0x1f" (unary_expression "~uVar21" (~ "~") (identifier "uVar21")) (& "&") (number_literal "0x1f")) () ")"))) (| "|") (binary_expression "(uint)uVar43 >> (uVar21 & 0x1f)" (cast_expression "(uint)uVar43" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar43")) (>> ">>") (parenthesized_expression "(uVar21 & 0x1f)" (( "(") (binary_expression "uVar21 & 0x1f" (identifier "uVar21") (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (if_statement "if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" (if "if") (parenthesized_expression "((uVar21 & 0x20) != 0)" (( "(") (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" (( "(") (binary_expression "uVar21 & 0x20" (identifier "uVar21") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" ({ "{") (expression_statement "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "uVar8 >> (uVar21 & 0x1f)" (identifier "uVar8") (>> ">>") (parenthesized_expression "(uVar21 & 0x1f)" (( "(") (binary_expression "uVar21 & 0x1f" (identifier "uVar21") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" (identifier "uVar23") (= "=") (binary_expression "uVar23 - uVar9" (identifier "uVar23") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (identifier "bVar13") (= "=") (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (( "(") (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" (( "(") (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << (uVar9 & 0x1f))" (( "(") (binary_expression "-1 << (uVar9 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "(uVar9 & 0x1f)" (( "(") (binary_expression "uVar9 & 0x1f" (identifier "uVar9") (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar10")) () ")")) (<< "<<") (parenthesized_expression "(uVar23 & 0x1f)" (( "(") (binary_expression "uVar23 & 0x1f" (identifier "uVar23") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }" (if "if") (parenthesized_expression "((uVar23 & 0x20) != 0)" (( "(") (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" (( "(") (binary_expression "uVar23 & 0x20" (identifier "uVar23") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            bVar13 = 0;\n          }" ({ "{") (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "bVar13 | *param_6" (identifier "bVar13") (| "|") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (if_statement "if (uVar23 != 0) break;" (if "if") (parenthesized_expression "(uVar23 != 0)" (( "(") (binary_expression "uVar23 != 0" (identifier "uVar23") (!= "!=") (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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" (identifier "uVar23") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar15 < 1) goto LAB_001652fc;" (if "if") (parenthesized_expression "((int)uVar15 < 1)" (( "(") (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_001652fc;" (goto "goto") (statement_identifier "LAB_001652fc") (; ";"))) (} "}"))) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" (identifier "uVar23") (= "=") (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar15)" (( "(") (binary_expression "0 < (int)uVar15" (number_literal "0") (< "<") (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15"))) () ")")) (; ";")) (labeled_statement "LAB_001652fc:\n      iVar24 = *(int *)(param_1 + 0x2d0);" (statement_identifier "LAB_001652fc") (: ":") (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";"))) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 8) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 8) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 8) * 4" (pointer_expression "*(int *)(iVar24 + 8)" (* "*") (cast_expression "(int *)(iVar24 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 8)" (( "(") (binary_expression "iVar24 + 8" (identifier "iVar24") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" (identifier "uVar21") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (NAN(fVar33)) {\nLAB_001655c0:\n        uVar43 = 0;\n      }\n      else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" (if "if") (parenthesized_expression "(NAN(fVar33))" (( "(") (call_expression "NAN(fVar33)" (identifier "NAN") (argument_list "(fVar33)" (( "(") (identifier "fVar33") () ")"))) () ")")) (compound_statement "{\nLAB_001655c0:\n        uVar43 = 0;\n      }" ({ "{") (labeled_statement "LAB_001655c0:\n        uVar43 = 0;" (statement_identifier "LAB_001655c0") (: ":") (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" (identifier "uVar43") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" (else "else") (compound_statement "{\nLAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" ({ "{") (labeled_statement "LAB_0016531c:\n        if (fVar33 <= (float)uVar36) goto LAB_001655c0;" (statement_identifier "LAB_0016531c") (: ":") (if_statement "if (fVar33 <= (float)uVar36) goto LAB_001655c0;" (if "if") (parenthesized_expression "(fVar33 <= (float)uVar36)" (( "(") (binary_expression "fVar33 <= (float)uVar36" (identifier "fVar33") (<= "<=") (cast_expression "(float)uVar36" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar36"))) () ")")) (goto_statement "goto LAB_001655c0;" (goto "goto") (statement_identifier "LAB_001655c0") (; ";")))) (expression_statement "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);" (assignment_expression "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (identifier "dVar38") (= "=") (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8960" (* "*") (cast_expression "(code *)PTR_FUN_003a8960" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8960"))) () ")")) (argument_list "(local_c0,local_b8)" (( "(") (identifier "local_c0") (, ",") (identifier "local_b8") () ")"))))) (; ";")) (expression_statement "dVar38 = (dVar38 * (double)fVar33) / dVar39;" (assignment_expression "dVar38 = (dVar38 * (double)fVar33) / dVar39" (identifier "dVar38") (= "=") (binary_expression "(dVar38 * (double)fVar33) / dVar39" (parenthesized_expression "(dVar38 * (double)fVar33)" (( "(") (binary_expression "dVar38 * (double)fVar33" (identifier "dVar38") (* "*") (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33"))) () ")")) (/ "/") (identifier "dVar39"))) (; ";")) (if_statement "if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }" (if "if") (parenthesized_expression "(dVar38 < dVar29)" (( "(") (binary_expression "dVar38 < dVar29" (identifier "dVar38") (< "<") (identifier "dVar29")) () ")")) (compound_statement "{\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }" ({ "{") (expression_statement "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);" (assignment_expression "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" (identifier "uVar43") (= "=") (call_expression "(*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar38 + dVar37)" (( "(") (binary_expression "dVar38 + dVar37" (identifier "dVar38") (+ "+") (identifier "dVar37")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          uVar43 = 0xffffffffffffffff;\n        }" (else "else") (compound_statement "{\n          uVar43 = 0xffffffffffffffff;\n        }" ({ "{") (expression_statement "uVar43 = 0xffffffffffffffff;" (assignment_expression "uVar43 = 0xffffffffffffffff" (identifier "uVar43") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (} "}")))) (} "}")))) (if_statement "if (uVar23 == 0) {\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar23 = 8;\n        param_2[0x15] = 8;\n      }" ({ "{") (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" (identifier "uVar23") (= "=") (number_literal "8")) (; ";")) (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" (assignment_expression "uVar8 = (uint)((ulonglong)uVar43 >> 0x20)" (identifier "uVar8") (= "=") (call_expression "(uint)((ulonglong)uVar43 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar43 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar43 >> 0x20" (cast_expression "(ulonglong)uVar43" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar43")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if ((int)uVar21 < 1) {\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }\n    else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }" (if "if") (parenthesized_expression "((int)uVar21 < 1)" (( "(") (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;\n      uVar43 = 0;\n    }" ({ "{") (if_statement "if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;" (if "if") (parenthesized_expression "(*(int *)(iVar24 + 0x34) == 4)" (( "(") (binary_expression "*(int *)(iVar24 + 0x34) == 4" (pointer_expression "*(int *)(iVar24 + 0x34)" (* "*") (cast_expression "(int *)(iVar24 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x34)" (( "(") (binary_expression "iVar24 + 0x34" (identifier "iVar24") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_0016554c;" (goto "goto") (statement_identifier "LAB_0016554c") (; ";"))) (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" (identifier "uVar43") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }" (else "else") (compound_statement "{\n      do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);\nLAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);\n      uVar21 = *param_2;\n      if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }\n      if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }\n    }" ({ "{") (do_statement "do {\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      } while (0 < (int)uVar15);" (do "do") (compound_statement "{\n        while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }\n        uVar23 = param_2[0x15];\n      }" ({ "{") (while_statement "while( true ) {\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uVar9 = uVar23;\n          if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }\n          uVar15 = uVar21 - uVar9;\n          uVar21 = uVar15;\n          if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }\n          if (uVar23 == 8) {\n            *param_6 = 0;\n          }\n          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n          if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }\n          uVar23 = uVar23 - uVar9;\n          param_2[0x15] = uVar23;\n          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));\n          if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }\n          *param_6 = bVar13 | *param_6;\n          if (uVar23 != 0) break;\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n          uVar23 = 8;\n          if ((int)uVar15 < 1) goto LAB_00165418;\n        }" ({ "{") (expression_statement "uVar9 = uVar23;" (assignment_expression "uVar9 = uVar23" (identifier "uVar9") (= "=") (identifier "uVar23")) (; ";")) (if_statement "if (uVar21 <= uVar23) {\n            uVar9 = uVar21;\n          }" (if "if") (parenthesized_expression "(uVar21 <= uVar23)" (( "(") (binary_expression "uVar21 <= uVar23" (identifier "uVar21") (<= "<=") (identifier "uVar23")) () ")")) (compound_statement "{\n            uVar9 = uVar21;\n          }" ({ "{") (expression_statement "uVar9 = uVar21;" (assignment_expression "uVar9 = uVar21" (identifier "uVar9") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (expression_statement "uVar15 = uVar21 - uVar9;" (assignment_expression "uVar15 = uVar21 - uVar9" (identifier "uVar15") (= "=") (binary_expression "uVar21 - uVar9" (identifier "uVar21") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" (identifier "uVar21") (= "=") (identifier "uVar15")) (; ";")) (if_statement "if ((int)uVar15 < 0) {\n            uVar21 = 0;\n          }" (if "if") (parenthesized_expression "((int)uVar15 < 0)" (( "(") (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            uVar21 = 0;\n          }" ({ "{") (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (uVar23 == 8) {\n            *param_6 = 0;\n          }" (if "if") (parenthesized_expression "(uVar23 == 8)" (( "(") (binary_expression "uVar23 == 8" (identifier "uVar23") (== "==") (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 "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f)" (parenthesized_expression "(uVar8 << 1)" (( "(") (binary_expression "uVar8 << 1" (identifier "uVar8") (<< "<<") (number_literal "1")) () ")")) (<< "<<") (parenthesized_expression "(~uVar21 & 0x1f)" (( "(") (binary_expression "~uVar21 & 0x1f" (unary_expression "~uVar21" (~ "~") (identifier "uVar21")) (& "&") (number_literal "0x1f")) () ")"))) (| "|") (binary_expression "(uint)uVar43 >> (uVar21 & 0x1f)" (cast_expression "(uint)uVar43" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar43")) (>> ">>") (parenthesized_expression "(uVar21 & 0x1f)" (( "(") (binary_expression "uVar21 & 0x1f" (identifier "uVar21") (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (if_statement "if ((uVar21 & 0x20) != 0) {\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" (if "if") (parenthesized_expression "((uVar21 & 0x20) != 0)" (( "(") (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" (( "(") (binary_expression "uVar21 & 0x20" (identifier "uVar21") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar10 = uVar8 >> (uVar21 & 0x1f);\n          }" ({ "{") (expression_statement "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "uVar8 >> (uVar21 & 0x1f)" (identifier "uVar8") (>> ">>") (parenthesized_expression "(uVar21 & 0x1f)" (( "(") (binary_expression "uVar21 & 0x1f" (identifier "uVar21") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar23 = uVar23 - uVar9;" (assignment_expression "uVar23 = uVar23 - uVar9" (identifier "uVar23") (= "=") (binary_expression "uVar23 - uVar9" (identifier "uVar23") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "param_2[0x15] = uVar23;" (assignment_expression "param_2[0x15] = uVar23" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (identifier "bVar13") (= "=") (call_expression "(byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f))" (( "(") (binary_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar9 & 0x1f)) & uVar10)" (( "(") (binary_expression "~(-1 << (uVar9 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar9 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << (uVar9 & 0x1f))" (( "(") (binary_expression "-1 << (uVar9 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "(uVar9 & 0x1f)" (( "(") (binary_expression "uVar9 & 0x1f" (identifier "uVar9") (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar10")) () ")")) (<< "<<") (parenthesized_expression "(uVar23 & 0x1f)" (( "(") (binary_expression "uVar23 & 0x1f" (identifier "uVar23") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar23 & 0x20) != 0) {\n            bVar13 = 0;\n          }" (if "if") (parenthesized_expression "((uVar23 & 0x20) != 0)" (( "(") (binary_expression "(uVar23 & 0x20) != 0" (parenthesized_expression "(uVar23 & 0x20)" (( "(") (binary_expression "uVar23 & 0x20" (identifier "uVar23") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            bVar13 = 0;\n          }" ({ "{") (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "bVar13 | *param_6" (identifier "bVar13") (| "|") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (if_statement "if (uVar23 != 0) break;" (if "if") (parenthesized_expression "(uVar23 != 0)" (( "(") (binary_expression "uVar23 != 0" (identifier "uVar23") (!= "!=") (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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar23 = 8;" (assignment_expression "uVar23 = 8" (identifier "uVar23") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar15 < 1) goto LAB_00165418;" (if "if") (parenthesized_expression "((int)uVar15 < 1)" (( "(") (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_00165418;" (goto "goto") (statement_identifier "LAB_00165418") (; ";"))) (} "}"))) (expression_statement "uVar23 = param_2[0x15];" (assignment_expression "uVar23 = param_2[0x15]" (identifier "uVar23") (= "=") (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar15)" (( "(") (binary_expression "0 < (int)uVar15" (number_literal "0") (< "<") (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15"))) () ")")) (; ";")) (labeled_statement "LAB_00165418:\n      iVar24 = *(int *)(param_1 + 0x2d0);" (statement_identifier "LAB_00165418") (: ":") (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";"))) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" (identifier "uVar21") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (*(int *)(iVar24 + 0x34) == 4) {\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }\n      else {\nLAB_00165430:\n        uVar43 = 0;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar24 + 0x34) == 4)" (( "(") (binary_expression "*(int *)(iVar24 + 0x34) == 4" (pointer_expression "*(int *)(iVar24 + 0x34)" (* "*") (cast_expression "(int *)(iVar24 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x34)" (( "(") (binary_expression "iVar24 + 0x34" (identifier "iVar24") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\nLAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);\n        if (fVar33 <= (float)uVar36) goto LAB_00165430;\n        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);\n        dVar38 = (dVar38 * (double)fVar33) / dVar39;\n        if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }\n      }" ({ "{") (labeled_statement "LAB_0016554c:\n        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);" (statement_identifier "LAB_0016554c") (: ":") (expression_statement "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);" (assignment_expression "fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" (identifier "fVar33") (= "=") (binary_expression "fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" (identifier "fVar31") (- "-") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x38) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 0x38) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 0x38) * 4" (pointer_expression "*(int *)(iVar24 + 0x38)" (* "*") (cast_expression "(int *)(iVar24 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x38)" (( "(") (binary_expression "iVar24 + 0x38" (identifier "iVar24") (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "4"))) () ")")))))) (; ";"))) (if_statement "if (fVar33 <= (float)uVar36) goto LAB_00165430;" (if "if") (parenthesized_expression "(fVar33 <= (float)uVar36)" (( "(") (binary_expression "fVar33 <= (float)uVar36" (identifier "fVar33") (<= "<=") (cast_expression "(float)uVar36" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar36"))) () ")")) (goto_statement "goto LAB_00165430;" (goto "goto") (statement_identifier "LAB_00165430") (; ";"))) (expression_statement "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);" (assignment_expression "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (identifier "dVar38") (= "=") (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8960" (* "*") (cast_expression "(code *)PTR_FUN_003a8960" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8960"))) () ")")) (argument_list "(local_c0,local_b8)" (( "(") (identifier "local_c0") (, ",") (identifier "local_b8") () ")"))))) (; ";")) (expression_statement "dVar38 = (dVar38 * (double)fVar33) / dVar39;" (assignment_expression "dVar38 = (dVar38 * (double)fVar33) / dVar39" (identifier "dVar38") (= "=") (binary_expression "(dVar38 * (double)fVar33) / dVar39" (parenthesized_expression "(dVar38 * (double)fVar33)" (( "(") (binary_expression "dVar38 * (double)fVar33" (identifier "dVar38") (* "*") (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33"))) () ")")) (/ "/") (identifier "dVar39"))) (; ";")) (if_statement "if (dVar38 < dVar29) {\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }\n        else {\n          uVar43 = 0xffffffffffffffff;\n        }" (if "if") (parenthesized_expression "(dVar38 < dVar29)" (( "(") (binary_expression "dVar38 < dVar29" (identifier "dVar38") (< "<") (identifier "dVar29")) () ")")) (compound_statement "{\n          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);\n        }" ({ "{") (expression_statement "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);" (assignment_expression "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" (identifier "uVar43") (= "=") (call_expression "(*(code *)PTR_FUN_003a8954)(dVar38 + dVar37)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar38 + dVar37)" (( "(") (binary_expression "dVar38 + dVar37" (identifier "dVar38") (+ "+") (identifier "dVar37")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          uVar43 = 0xffffffffffffffff;\n        }" (else "else") (compound_statement "{\n          uVar43 = 0xffffffffffffffff;\n        }" ({ "{") (expression_statement "uVar43 = 0xffffffffffffffff;" (assignment_expression "uVar43 = 0xffffffffffffffff" (identifier "uVar43") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\nLAB_00165430:\n        uVar43 = 0;\n      }" (else "else") (compound_statement "{\nLAB_00165430:\n        uVar43 = 0;\n      }" ({ "{") (labeled_statement "LAB_00165430:\n        uVar43 = 0;" (statement_identifier "LAB_00165430") (: ":") (expression_statement "uVar43 = 0;" (assignment_expression "uVar43 = 0" (identifier "uVar43") (= "=") (number_literal "0")) (; ";"))) (} "}")))) (if_statement "if (uVar23 == 0) {\n        param_2[0x15] = 8;\n      }" (if "if") (parenthesized_expression "(uVar23 == 0)" (( "(") (binary_expression "uVar23 == 0" (identifier "uVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_2[0x15] = 8;\n      }" ({ "{") (expression_statement "param_2[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar8 = (uint)((ulonglong)uVar43 >> 0x20);" (assignment_expression "uVar8 = (uint)((ulonglong)uVar43 >> 0x20)" (identifier "uVar8") (= "=") (call_expression "(uint)((ulonglong)uVar43 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar43 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar43 >> 0x20" (cast_expression "(ulonglong)uVar43" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar43")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (0 < (int)uVar21) {\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }" (if "if") (parenthesized_expression "(0 < (int)uVar21)" (( "(") (binary_expression "0 < (int)uVar21" (number_literal "0") (< "<") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) () ")")) (compound_statement "{\n      do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);\n    }" ({ "{") (do_statement "do {\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      } while (0 < (int)uVar15);" (do "do") (compound_statement "{\n        uVar9 = param_2[0x15];\n        uVar23 = uVar9;\n        if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }\n        uVar15 = uVar21 - uVar23;\n        uVar21 = uVar15;\n        if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }\n        if (uVar9 == 8) {\n          *param_6 = 0;\n        }\n        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);\n        if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }\n        uVar9 = uVar9 - uVar23;\n        param_2[0x15] = uVar9;\n        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));\n        if ((uVar9 & 0x20) != 0) {\n          bVar13 = 0;\n        }\n        *param_6 = bVar13 | *param_6;\n        if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 8;\n        }\n      }" ({ "{") (expression_statement "uVar9 = param_2[0x15];" (assignment_expression "uVar9 = param_2[0x15]" (identifier "uVar9") (= "=") (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (expression_statement "uVar23 = uVar9;" (assignment_expression "uVar23 = uVar9" (identifier "uVar23") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (uVar21 <= uVar9) {\n          uVar23 = uVar21;\n        }" (if "if") (parenthesized_expression "(uVar21 <= uVar9)" (( "(") (binary_expression "uVar21 <= uVar9" (identifier "uVar21") (<= "<=") (identifier "uVar9")) () ")")) (compound_statement "{\n          uVar23 = uVar21;\n        }" ({ "{") (expression_statement "uVar23 = uVar21;" (assignment_expression "uVar23 = uVar21" (identifier "uVar23") (= "=") (identifier "uVar21")) (; ";")) (} "}"))) (expression_statement "uVar15 = uVar21 - uVar23;" (assignment_expression "uVar15 = uVar21 - uVar23" (identifier "uVar15") (= "=") (binary_expression "uVar21 - uVar23" (identifier "uVar21") (- "-") (identifier "uVar23"))) (; ";")) (expression_statement "uVar21 = uVar15;" (assignment_expression "uVar21 = uVar15" (identifier "uVar21") (= "=") (identifier "uVar15")) (; ";")) (if_statement "if ((int)uVar15 < 0) {\n          uVar21 = 0;\n        }" (if "if") (parenthesized_expression "((int)uVar15 < 0)" (( "(") (binary_expression "(int)uVar15 < 0" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          uVar21 = 0;\n        }" ({ "{") (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (} "}"))) (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 "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f)" (binary_expression "(uVar8 << 1) << (~uVar21 & 0x1f)" (parenthesized_expression "(uVar8 << 1)" (( "(") (binary_expression "uVar8 << 1" (identifier "uVar8") (<< "<<") (number_literal "1")) () ")")) (<< "<<") (parenthesized_expression "(~uVar21 & 0x1f)" (( "(") (binary_expression "~uVar21 & 0x1f" (unary_expression "~uVar21" (~ "~") (identifier "uVar21")) (& "&") (number_literal "0x1f")) () ")"))) (| "|") (binary_expression "(uint)uVar43 >> (uVar21 & 0x1f)" (cast_expression "(uint)uVar43" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar43")) (>> ">>") (parenthesized_expression "(uVar21 & 0x1f)" (( "(") (binary_expression "uVar21 & 0x1f" (identifier "uVar21") (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (if_statement "if ((uVar21 & 0x20) != 0) {\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }" (if "if") (parenthesized_expression "((uVar21 & 0x20) != 0)" (( "(") (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" (( "(") (binary_expression "uVar21 & 0x20" (identifier "uVar21") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar10 = uVar8 >> (uVar21 & 0x1f);\n        }" ({ "{") (expression_statement "uVar10 = uVar8 >> (uVar21 & 0x1f);" (assignment_expression "uVar10 = uVar8 >> (uVar21 & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "uVar8 >> (uVar21 & 0x1f)" (identifier "uVar8") (>> ">>") (parenthesized_expression "(uVar21 & 0x1f)" (( "(") (binary_expression "uVar21 & 0x1f" (identifier "uVar21") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar9 = uVar9 - uVar23;" (assignment_expression "uVar9 = uVar9 - uVar23" (identifier "uVar9") (= "=") (binary_expression "uVar9 - uVar23" (identifier "uVar9") (- "-") (identifier "uVar23"))) (; ";")) (expression_statement "param_2[0x15] = uVar9;" (assignment_expression "param_2[0x15] = uVar9" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));" (assignment_expression "bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f))" (identifier "bVar13") (= "=") (call_expression "(byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f))" (( "(") (binary_expression "(~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f)" (parenthesized_expression "(~(-1 << (uVar23 & 0x1f)) & uVar10)" (( "(") (binary_expression "~(-1 << (uVar23 & 0x1f)) & uVar10" (unary_expression "~(-1 << (uVar23 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << (uVar23 & 0x1f))" (( "(") (binary_expression "-1 << (uVar23 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "(uVar23 & 0x1f)" (( "(") (binary_expression "uVar23 & 0x1f" (identifier "uVar23") (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar10")) () ")")) (<< "<<") (parenthesized_expression "(uVar9 & 0x1f)" (( "(") (binary_expression "uVar9 & 0x1f" (identifier "uVar9") (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar9 & 0x20) != 0) {\n          bVar13 = 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          bVar13 = 0;\n        }" ({ "{") (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_6 = bVar13 | *param_6;" (assignment_expression "*param_6 = bVar13 | *param_6" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (binary_expression "bVar13 | *param_6" (identifier "bVar13") (| "|") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (if_statement "if (uVar9 == 0) {\n          param_6 = param_6 + 1;\n          param_2[0x15] = 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[0x15] = 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[0x15] = 8;" (assignment_expression "param_2[0x15] = 8" (subscript_expression "param_2[0x15]" (identifier "param_2") ([ "[") (number_literal "0x15") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar15)" (( "(") (binary_expression "0 < (int)uVar15" (number_literal "0") (< "<") (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_6 = param_6 + param_2[10];" (assignment_expression "param_6 = param_6 + param_2[10]" (identifier "param_6") (= "=") (binary_expression "param_6 + param_2[10]" (identifier "param_6") (+ "+") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;" (assignment_expression "param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (= "=") (binary_expression "param_5 + *(int *)(param_1 + 0x2c0) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(param_1 + 0x2c0) * 4" (pointer_expression "*(int *)(param_1 + 0x2c0)" (* "*") (cast_expression "(int *)(param_1 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c0)" (( "(") (binary_expression "param_1 + 0x2c0" (identifier "param_1") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (if_statement "if (iVar22 == param_4) {\n      return;\n    }" (if "if") (parenthesized_expression "(iVar22 == param_4)" (( "(") (binary_expression "iVar22 == param_4" (identifier "iVar22") (== "==") (identifier "param_4")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar24 = *(int *)(param_1 + 0x2d0);" (assignment_expression "iVar24 = *(int *)(param_1 + 0x2d0)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_1 + 0x2d0)" (* "*") (cast_expression "(int *)(param_1 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);" (assignment_expression "fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (identifier "fVar33") (= "=") (pointer_expression "*(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (* "*") (cast_expression "(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + *(int *)(iVar24 + 0x20) * 4)" (( "(") (binary_expression "param_5 + *(int *)(iVar24 + 0x20) * 4" (identifier "param_5") (+ "+") (binary_expression "*(int *)(iVar24 + 0x20) * 4" (pointer_expression "*(int *)(iVar24 + 0x20)" (* "*") (cast_expression "(int *)(iVar24 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x20)" (( "(") (binary_expression "iVar24 + 0x20" (identifier "iVar24") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar21 = *param_2;" (assignment_expression "uVar21 = *param_2" (identifier "uVar21") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(NAN(fVar33))" (( "(") (call_expression "NAN(fVar33)" (identifier "NAN") (argument_list "(fVar33)" (( "(") (identifier "fVar33") () ")"))) () ")")) (; ";"))) (labeled_statement "LAB_001650f0:\n  if (fVar33 <= (float)uVar36) goto LAB_00165520;" (statement_identifier "LAB_001650f0") (: ":") (if_statement "if (fVar33 <= (float)uVar36) goto LAB_00165520;" (if "if") (parenthesized_expression "(fVar33 <= (float)uVar36)" (( "(") (binary_expression "fVar33 <= (float)uVar36" (identifier "fVar33") (<= "<=") (cast_expression "(float)uVar36" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar36"))) () ")")) (goto_statement "goto LAB_00165520;" (goto "goto") (statement_identifier "LAB_00165520") (; ";")))) (expression_statement "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);" (assignment_expression "dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (identifier "dVar38") (= "=") (cast_expression "(double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_FUN_003a8960)(local_c0,local_b8)" (parenthesized_expression "(*(code *)PTR_FUN_003a8960)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8960" (* "*") (cast_expression "(code *)PTR_FUN_003a8960" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8960"))) () ")")) (argument_list "(local_c0,local_b8)" (( "(") (identifier "local_c0") (, ",") (identifier "local_b8") () ")"))))) (; ";")) (expression_statement "dVar38 = (dVar38 * (double)fVar33) / dVar26;" (assignment_expression "dVar38 = (dVar38 * (double)fVar33) / dVar26" (identifier "dVar38") (= "=") (binary_expression "(dVar38 * (double)fVar33) / dVar26" (parenthesized_expression "(dVar38 * (double)fVar33)" (( "(") (binary_expression "dVar38 * (double)fVar33" (identifier "dVar38") (* "*") (cast_expression "(double)fVar33" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar33"))) () ")")) (/ "/") (identifier "dVar26"))) (; ";")) (if_statement "if (dVar38 < dVar25) {\n    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);\n  }\n  else {\n    uVar43 = 0xffffffffffffffff;\n  }" (if "if") (parenthesized_expression "(dVar38 < dVar25)" (( "(") (binary_expression "dVar38 < dVar25" (identifier "dVar38") (< "<") (identifier "dVar25")) () ")")) (compound_statement "{\n    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);\n  }" ({ "{") (expression_statement "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);" (assignment_expression "uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27)" (identifier "uVar43") (= "=") (call_expression "(*(code *)PTR_FUN_003a8954)(dVar38 + dVar27)" (parenthesized_expression "(*(code *)PTR_FUN_003a8954)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8954" (* "*") (cast_expression "(code *)PTR_FUN_003a8954" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8954"))) () ")")) (argument_list "(dVar38 + dVar27)" (( "(") (binary_expression "dVar38 + dVar27" (identifier "dVar38") (+ "+") (identifier "dVar27")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    uVar43 = 0xffffffffffffffff;\n  }" (else "else") (compound_statement "{\n    uVar43 = 0xffffffffffffffff;\n  }" ({ "{") (expression_statement "uVar43 = 0xffffffffffffffff;" (assignment_expression "uVar43 = 0xffffffffffffffff" (identifier "uVar43") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (} "}")))) (goto_statement "goto LAB_00165130;" (goto "goto") (statement_identifier "LAB_00165130") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (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))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (identifier) arguments: (argument_list (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)))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (identifier) arguments: (argument_list (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)))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) 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: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))))))) right: (identifier)))) (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))))))))) right: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) 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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) 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))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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))) (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: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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))) (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: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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))) (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: (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: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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)))) (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: (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))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (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: (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))))) alternative: (else_clause (compound_statement (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: (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 (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))) (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: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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 (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) 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: (identifier) right: (number_literal))))) 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: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))))) (goto_statement label: (statement_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: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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 (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (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: (identifier) right: (number_literal)))))))) alternative: (else_clause (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (return_statement)))) condition: (parenthesized_expression (true))))) (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))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) 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: (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 (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 (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (unary_expression argument: (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: (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_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: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (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: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_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: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (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: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_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: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (identifier)) right: (number_literal)))) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (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 (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 (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (identifier))) (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: (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: (parenthesized_expression (binary_expression left: (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: (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: (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: (identifier) right: (number_literal)))))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (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: (identifier) right: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) 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: (identifier))) (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: (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: (parenthesized_expression (binary_expression left: (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: (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: (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: (identifier) right: (number_literal)))))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (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: (identifier) right: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) 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: (identifier))) (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: (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: (parenthesized_expression (binary_expression left: (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: (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: (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: (identifier) right: (number_literal)))))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (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: (identifier) right: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (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: (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))) (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: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (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))))))) (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: (identifier))) (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: (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: (parenthesized_expression (binary_expression left: (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: (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: (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: (identifier) right: (number_literal)))))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (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: (identifier) right: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) condition: (parenthesized_expression (true))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (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: (pointer_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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) alternative: (else_clause (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: (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: (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: (pointer_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)))))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) alternative: (else_clause (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: (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: (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: (pointer_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)))))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) alternative: (else_clause (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (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)))))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) alternative: (else_clause (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: (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))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (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))) (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: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (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))) (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: (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: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (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))) (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: (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: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (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: (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))) (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: (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: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (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))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (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: (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))))) (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: (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))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (pointer_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: (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))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) alternative: (else_clause (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)))))) (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: (pointer_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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) 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)))))) (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))) (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: (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: (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: (pointer_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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) 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)))))) (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))) (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) 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)))))) (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))) (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: (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: (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: (number_literal) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (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: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (unary_expression argument: (call_expression function: (identifier) arguments: (argument_list (identifier))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (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: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (identifier))) (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: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (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: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (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: (identifier) right: (number_literal)))))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (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: (identifier) right: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))))) (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: (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (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: (identifier))) (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: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (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: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (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: (identifier) right: (number_literal)))))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (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: (identifier) right: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))))) (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: (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (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: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (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: (identifier) right: (number_literal)))))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (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: (identifier) right: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))))) (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: (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (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: (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: (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: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) (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: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (number_literal)))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (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: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (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: (identifier) right: (number_literal)))))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (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: (identifier) right: (pointer_expression argument: (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)))))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) condition: (parenthesized_expression (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))))) (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: (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))))

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

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  byte bVar6;
  undefined2 uVar5;
  int iVar7;
  int extraout_v1;
  int extraout_v1_00;
  int extraout_v1_01;
  uint uVar8;
  uint extraout_v1_02;
  uint extraout_v1_03;
  uint extraout_v1_04;
  uint uVar9;
  uint extraout_v1_05;
  uint extraout_v1_06;
  uint extraout_v1_07;
  uint extraout_v1_08;
  uint extraout_v1_09;
  byte bVar12;
  byte bVar13;
  uint uVar10;
  byte *pbVar11;
  byte bVar14;
  uint uVar15;
  uint uVar16;
  byte bVar17;
  byte bVar18;
  byte bVar19;
  byte bVar20;
  uint uVar21;
  int iVar22;
  uint uVar23;
  int iVar24;
  double dVar25;
  float fVar31;
  double dVar26;
  double dVar27;
  double dVar28;
  double dVar29;
  float fVar32;
  double dVar30;
  double extraout_f0_1;
  float fVar33;
  ulonglong uVar34;
  ulonglong uVar35;
  undefined8 uVar36;
  double dVar37;
  double dVar38;
  double dVar39;
  double dVar40;
  double dVar41;
  double dVar42;
  undefined8 uVar43;
  int local_c0;
  uint local_b8;
  
  puVar4 = PTR_s_courses_003a88ec;
  puVar3 = PTR_s_t_to_left_003a88e4;
  puVar2 = PTR_LAB_003a88e0;
  if (param_7 == 0) {
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_LAB_003a88e0 + 0x1cac,PTR_s_courses_003a88ec + -0x7af0,0x385,
               PTR_s_courses_003a88ec + -0x75c0);
    return;
  }
  if (*(int *)(param_7 + 0x1c) != -0x54535255) {
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_LAB_003a88e0 + 0x294c,PTR_s_courses_003a88ec + -0x7af0,0x386,
               PTR_s_courses_003a88ec + -0x75c0);
    return;
  }
  uVar21 = *param_2;
  if (uVar21 == 0x10) {
    if (param_2[2] == 1) {
      if (param_4 < 1) {
        return;
      }
      iVar22 = 0;
      uVar21 = 1;
      iVar24 = 4;
      dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1440);
      uVar34 = (ulonglong)*(uint *)(PTR_LAB_003a88e0 + 0x1a50);
      dVar26 = dVar25;
      dVar27 = dVar25;
      dVar28 = dVar25;
      do {
        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *
                 dVar25;
        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));
        bVar13 = (byte)((ushort)uVar5 >> 8);
        if (param_2[0x11] == uVar21) {
          *param_6 = (byte)uVar5;
          param_6[1] = bVar13;
        }
        else {
          *param_6 = bVar13;
          param_6[1] = (byte)uVar5;
        }
        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *
                 dVar27;
        uVar5 = FUN_00155b60(CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25));
        bVar13 = (byte)((ushort)uVar5 >> 8);
        if (param_2[0x11] == uVar21) {
          param_6[2] = (byte)uVar5;
          param_6[3] = bVar13;
        }
        else {
          param_6[2] = bVar13;
          param_6[3] = (byte)uVar5;
        }
        param_6 = param_6 + 4;
        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) * dVar26;
        uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);
        uVar5 = FUN_00155b60(uVar35);
        bVar13 = (byte)((ushort)uVar5 >> 8);
        if (param_2[0x11] == uVar21) {
          *param_6 = (byte)uVar5;
          param_6[1] = bVar13;
        }
        else {
          *param_6 = bVar13;
          param_6[1] = (byte)uVar5;
        }
        param_6 = param_6 + 2;
        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == iVar24) {
          dVar25 = (double)((float)uVar34 -
                           *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4)) *
                   dVar28;
          uVar35 = CONCAT44((int)((ulonglong)dVar25 >> 0x20),(float)dVar25);
        }
        else {
          uVar35 = uVar35 & 0xffffffff00000000;
        }
        uVar5 = FUN_00155b60(uVar35);
        bVar13 = (byte)((ushort)uVar5 >> 8);
        if (param_2[0x11] == uVar21) {
          *param_6 = (byte)uVar5;
          param_6[1] = bVar13;
        }
        else {
          *param_6 = bVar13;
          param_6[1] = (byte)uVar5;
        }
        iVar22 = iVar22 + 1;
        param_6 = param_6 + param_2[10] + 2;
        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
        dVar25 = extraout_f0_1;
      } while (iVar22 != param_4);
      return;
    }
    if (param_4 < 1) {
      return;
    }
    iVar22 = 0;
    fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
    dVar26 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
    dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
    do {
      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);
      if (fVar33 <= 0.0) {
        bVar17 = 0;
        bVar13 = 0;
        bVar12 = 0;
        bVar14 = 0;
        if (param_2[0x11] != 1) goto LAB_00165b70;
LAB_00165d84:
        *param_6 = bVar12;
        param_6[1] = bVar14;
      }
      else {
        if (fVar33 < fVar31) {
          dVar27 = (double)fVar33 + dVar26;
          if (dVar25 <= dVar27) {
            dVar27 = dVar27 - dVar25;
          }
          bVar13 = (byte)((uint)(int)dVar27 >> 8);
          bVar17 = (byte)(int)dVar27;
        }
        else {
          bVar17 = 0xff;
          bVar13 = 0xff;
        }
        bVar12 = bVar17;
        bVar14 = bVar13;
        if (param_2[0x11] == 1) goto LAB_00165d84;
LAB_00165b70:
        *param_6 = bVar13;
        param_6[1] = bVar17;
      }
      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);
      if (fVar33 <= 0.0) {
        bVar17 = 0;
        bVar13 = 0;
        bVar12 = 0;
        bVar14 = 0;
        if (param_2[0x11] != 1) goto LAB_00165be4;
LAB_00165d64:
        param_6[2] = bVar12;
        param_6[3] = bVar14;
      }
      else {
        if (fVar33 < fVar31) {
          dVar27 = (double)fVar33 + dVar26;
          if (dVar25 <= dVar27) {
            dVar27 = dVar27 - dVar25;
          }
          bVar13 = (byte)((uint)(int)dVar27 >> 8);
          bVar17 = (byte)(int)dVar27;
        }
        else {
          bVar17 = 0xff;
          bVar13 = 0xff;
        }
        bVar12 = bVar17;
        bVar14 = bVar13;
        if (param_2[0x11] == 1) goto LAB_00165d64;
LAB_00165be4:
        param_6[2] = bVar13;
        param_6[3] = bVar17;
      }
      fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);
      if (fVar33 <= 0.0) {
        bVar17 = 0;
        bVar13 = 0;
        bVar12 = 0;
        bVar14 = 0;
        if (param_2[0x11] != 1) goto LAB_00165c5c;
LAB_00165d44:
        param_6[4] = bVar12;
        param_6[5] = bVar14;
      }
      else {
        if (fVar33 < fVar31) {
          dVar27 = (double)fVar33 + dVar26;
          if (dVar25 <= dVar27) {
            dVar27 = dVar27 - dVar25;
          }
          bVar13 = (byte)((uint)(int)dVar27 >> 8);
          bVar17 = (byte)(int)dVar27;
        }
        else {
          bVar17 = 0xff;
          bVar13 = 0xff;
        }
        bVar12 = bVar17;
        bVar14 = bVar13;
        if (param_2[0x11] == 1) goto LAB_00165d44;
LAB_00165c5c:
        param_6[4] = bVar13;
        param_6[5] = bVar17;
      }
      if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||
         (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),
         fVar33 <= 0.0)) {
        bVar13 = 0;
        bVar12 = 0;
LAB_00165c80:
        if (param_2[0x11] != 1) goto LAB_00165c8c;
LAB_00165d24:
        param_6[6] = bVar13;
        param_6[7] = bVar12;
      }
      else {
        if (fVar31 <= fVar33) {
          bVar13 = 0xff;
          bVar12 = 0xff;
          goto LAB_00165c80;
        }
        dVar27 = (double)fVar33 + dVar26;
        if (dVar27 < dVar25) {
          uVar5 = (undefined2)(int)dVar27;
        }
        else {
          uVar5 = (undefined2)(int)(dVar27 - dVar25);
        }
        bVar12 = (byte)((ushort)uVar5 >> 8);
        bVar13 = (byte)uVar5;
        if (param_2[0x11] == 1) goto LAB_00165d24;
LAB_00165c8c:
        param_6[6] = bVar12;
        param_6[7] = bVar13;
      }
      iVar22 = iVar22 + 1;
      param_6 = param_6 + param_2[10] + 8;
      param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
      if (iVar22 == param_4) {
        return;
      }
    } while( true );
  }
  if (uVar21 < 0x11) {
    if (uVar21 == 8) {
      if (param_4 < 1) {
        return;
      }
      iVar22 = 0;
      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af0);
      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5ae8);
      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
      do {
        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);
        if (fVar33 <= 0.0) {
          bVar13 = 0;
        }
        else {
          dVar29 = (double)fVar33 / dVar26;
          if (dVar29 < dVar25) {
            dVar29 = dVar29 + dVar28;
            if (dVar29 < dVar27) {
              bVar13 = (byte)(int)dVar29;
            }
            else {
              bVar13 = (byte)(int)(dVar29 - dVar27);
            }
          }
          else {
            bVar13 = 0xff;
          }
        }
        *param_6 = bVar13;
        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);
        if (fVar33 <= 0.0) {
          bVar13 = 0;
        }
        else {
          dVar29 = (double)fVar33 / dVar26;
          if (dVar29 < dVar25) {
            dVar29 = dVar29 + dVar28;
            if (dVar29 < dVar27) {
              bVar13 = (byte)(int)dVar29;
            }
            else {
              bVar13 = (byte)(int)(dVar29 - dVar27);
            }
          }
          else {
            bVar13 = 0xff;
          }
        }
        param_6[1] = bVar13;
        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);
        if (fVar33 <= 0.0) {
          bVar13 = 0;
        }
        else {
          dVar29 = (double)fVar33 / dVar26;
          if (dVar29 < dVar25) {
            dVar29 = dVar29 + dVar28;
            if (dVar29 < dVar27) {
              bVar13 = (byte)(int)dVar29;
            }
            else {
              bVar13 = (byte)(int)(dVar29 - dVar27);
            }
          }
          else {
            bVar13 = 0xff;
          }
        }
        param_6[2] = bVar13;
        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||
           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),
           fVar33 <= 0.0)) {
          bVar13 = 0;
        }
        else {
          dVar29 = (double)fVar33 / dVar26;
          if (dVar29 < dVar25) {
            dVar29 = dVar29 + dVar28;
            if (dVar29 < *(double *)(puVar2 + 0x1410)) {
              bVar13 = (byte)(int)dVar29;
            }
            else {
              bVar13 = (byte)(int)(dVar29 - *(double *)(puVar2 + 0x1410));
            }
          }
          else {
            bVar13 = 0xff;
          }
        }
        param_6[3] = bVar13;
        iVar22 = iVar22 + 1;
        param_6 = param_6 + param_2[10] + 4;
        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
      } while (iVar22 != param_4);
      return;
    }
    if (uVar21 == 10) {
      if (param_2[0xc] == 0) {
        if (param_4 < 1) {
          return;
        }
        iVar22 = 0;
        uVar21 = 0;
        dVar25 = *(double *)(PTR_LAB_003a88e0 + 0x1418);
        uVar34 = (ulonglong)*(uint *)(PTR_s_t_to_left_003a88e4 + -0x51e0);
        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
        dVar26 = *(double *)(PTR_s_courses_003a88ec + -0x7538);
        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
        dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
        dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
        do {
          iVar24 = 0;
          dVar40 = *(double *)(puVar4 + -0x7538);
          dVar42 = *(double *)(puVar2 + 0x1418);
          dVar38 = *(double *)(puVar2 + 0x1a58);
          dVar37 = *(double *)(puVar2 + 0x1a60);
          dVar41 = *(double *)(puVar2 + 0x1400);
          dVar39 = dVar42;
          do {
            iVar7 = *(int *)(param_1 + 0x2d0);
            if (iVar24 == 2) {
              fVar33 = *(float *)(param_5 + *(int *)(iVar7 + 0x20) * 4);
              if (fVar33 < (float)uVar34) {
                uVar8 = (uint)fVar33;
              }
              else {
                uVar8 = (int)(fVar33 - (float)uVar34) | 0x80000000;
              }
              dVar30 = (double)(int)uVar8;
              if ((int)uVar8 < 0) {
                dVar30 = dVar30 + dVar25;
              }
LAB_00164eec:
              fVar33 = (float)dVar30;
            }
            else {
              if (iVar24 != 3) {
                fVar33 = *(float *)(puVar3 + -0x51e0);
                if (iVar24 == 1) {
                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 0x14) * 4);
                  if (fVar32 < fVar33) {
                    uVar8 = (uint)fVar32;
                  }
                  else {
                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;
                  }
                  dVar30 = (double)(int)uVar8;
                  if ((int)uVar8 < 0) {
                    dVar30 = dVar30 + dVar42;
                  }
                }
                else {
                  fVar32 = *(float *)(param_5 + *(int *)(iVar7 + 8) * 4);
                  if (fVar32 < fVar33) {
                    uVar8 = (uint)fVar32;
                  }
                  else {
                    uVar8 = (int)(fVar32 - fVar33) | 0x80000000;
                  }
                  dVar30 = (double)(int)uVar8;
                  if ((int)uVar8 < 0) {
                    dVar30 = dVar30 + dVar42;
                  }
                }
                goto LAB_00164eec;
              }
              fVar33 = 0.0;
              if (*(int *)(iVar7 + 0x34) == 4) {
                fVar32 = *(float *)(puVar3 + -0x51e0);
                fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar7 + 0x38) * 4);
                if (fVar33 < fVar32) {
                  uVar8 = (uint)fVar33;
                }
                else {
                  uVar8 = (int)(fVar33 - fVar32) | 0x80000000;
                }
                dVar30 = (double)(int)uVar8;
                if ((int)uVar8 < 0) {
                  dVar30 = dVar30 + dVar39;
                }
                goto LAB_00164eec;
              }
            }
            uVar8 = (uint)(iVar24 + iVar22) % 3;
            if (uVar8 == 1) {
              if (0.0 < fVar33) {
                dVar30 = ((double)fVar33 * dVar26) / dVar27;
                if (dVar30 < dVar28) {
                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar29);
                  uVar21 = uVar21 | extraout_v1_01 << 0xc;
                }
                else {
                  uVar21 = 0xfffff000;
                }
              }
            }
            else if (uVar8 == 2) {
              if (0.0 < fVar33) {
                dVar30 = ((double)fVar33 * dVar40) / dVar38;
                if (dVar30 < dVar37) {
                  (*(code *)PTR_FUN_003a8954)(dVar30 + dVar41);
                  uVar21 = uVar21 | extraout_v1 << 2;
                }
                else {
                  uVar21 = 0xfffffffc;
                }
              }
              bVar13 = (byte)uVar21;
              bVar17 = (byte)(uVar21 >> 0x18);
              bVar14 = (byte)(uVar21 >> 0x10);
              bVar12 = (byte)(uVar21 >> 8);
              if (param_2[0x11] == 1) {
                *param_6 = bVar13;
                uVar21 = 0;
                param_6[1] = bVar12;
                param_6[2] = bVar14;
                param_6[3] = bVar17;
                param_6 = param_6 + 4;
              }
              else {
                uVar21 = 0;
                *param_6 = bVar17;
                param_6[1] = bVar14;
                param_6[2] = bVar12;
                param_6[3] = bVar13;
                param_6 = param_6 + 4;
              }
            }
            else if (0.0 < fVar33) {
              dVar30 = ((double)fVar33 * *(double *)(puVar4 + -0x7538)) /
                       *(double *)(puVar2 + 0x1a58);
              if (dVar30 < *(double *)(puVar2 + 0x1a60)) {
                (*(code *)PTR_FUN_003a8954)(dVar30 + *(double *)(puVar2 + 0x1400));
                uVar21 = uVar21 | extraout_v1_00 << 0x16;
              }
              else {
                uVar21 = uVar21 | 0xffc00000;
              }
            }
            iVar24 = iVar24 + 1;
          } while (iVar24 != 4);
          iVar22 = iVar22 + 4;
          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
          param_6 = param_6 + param_2[10];
          if (iVar22 == param_4 << 2) {
            return;
          }
        } while( true );
      }
      if (param_2[1] == 0x20) {
        if (param_4 < 1) {
          return;
        }
        iVar22 = 0;
        dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);
        dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
        dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
        dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
        uVar21 = 10;
        dVar25 = dVar37;
        dVar26 = dVar38;
        dVar27 = dVar40;
        dVar28 = dVar41;
        dVar29 = dVar40;
        dVar39 = dVar38;
        while( true ) {
          iVar24 = *(int *)(param_1 + 0x2d0);
          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);
          if (NAN(fVar33)) {
            uVar8 = 0;
          }
          else {
            uVar8 = 0;
            if (0.0 < fVar33) {
              dVar42 = ((double)fVar33 * dVar27) / dVar26;
              if (dVar42 < dVar25) {
                (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);
                uVar8 = extraout_v1_06;
              }
              else {
                uVar8 = 0xffffffff;
              }
            }
          }
          uVar23 = param_2[0x15];
          if (uVar23 == 0) {
            uVar23 = 0x20;
            param_2[0x15] = 0x20;
          }
          if (0 < (int)uVar21) {
            bVar1 = uVar23 < uVar21;
            uVar9 = uVar21;
            pbVar11 = param_6;
            do {
              uVar15 = uVar23;
              if (!bVar1) {
                uVar15 = uVar9;
              }
              uVar16 = uVar21 - uVar9;
              uVar10 = 0x20 - uVar23;
              uVar23 = uVar23 - uVar15;
              uVar9 = uVar9 - uVar15;
              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);
              param_2[0x15] = uVar23;
              uVar15 = (uVar8 >> (uVar16 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14];
              param_2[0x14] = uVar15;
              param_6 = pbVar11;
              if (uVar23 == 0) {
                param_6 = pbVar11 + 4;
                bVar14 = (byte)(uVar15 >> 0x18);
                bVar12 = (byte)(uVar15 >> 0x10);
                bVar13 = (byte)(uVar15 >> 8);
                if (param_2[0x11] == 1) {
                  *pbVar11 = (byte)uVar15;
                  pbVar11[1] = bVar13;
                  pbVar11[2] = bVar12;
                  pbVar11[3] = bVar14;
                }
                else {
                  *pbVar11 = bVar14;
                  pbVar11[1] = bVar12;
                  pbVar11[2] = bVar13;
                  pbVar11[3] = (byte)uVar15;
                }
                uVar21 = *param_2;
                uVar23 = 0x20;
                param_2[0x14] = 0;
                param_2[0x15] = 0x20;
              }
              bVar1 = uVar23 < uVar9;
              pbVar11 = param_6;
            } while (0 < (int)uVar9);
            iVar24 = *(int *)(param_1 + 0x2d0);
          }
          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);
          if (fVar33 <= 0.0) {
            uVar8 = 0;
          }
          else {
            dVar42 = ((double)fVar33 * dVar29) / dVar39;
            if (dVar42 < dVar37) {
              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);
              uVar8 = extraout_v1_07;
            }
            else {
              uVar8 = 0xffffffff;
            }
          }
          bVar1 = uVar23 < uVar21;
          uVar9 = uVar21;
          pbVar11 = param_6;
          if (0 < (int)uVar21) {
            do {
              uVar15 = uVar23;
              if (!bVar1) {
                uVar15 = uVar9;
              }
              uVar10 = 0x20 - uVar23;
              uVar23 = uVar23 - uVar15;
              uVar16 = uVar9 - uVar15;
              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);
              param_2[0x15] = uVar23;
              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]
              ;
              param_2[0x14] = uVar9;
              pbVar11 = param_6;
              if (uVar23 == 0) {
                pbVar11 = param_6 + 4;
                bVar14 = (byte)(uVar9 >> 0x18);
                bVar12 = (byte)(uVar9 >> 0x10);
                bVar13 = (byte)(uVar9 >> 8);
                if (param_2[0x11] == 1) {
                  *param_6 = (byte)uVar9;
                  param_6[1] = bVar13;
                  param_6[2] = bVar12;
                  param_6[3] = bVar14;
                }
                else {
                  *param_6 = bVar14;
                  param_6[1] = bVar12;
                  param_6[2] = bVar13;
                  param_6[3] = (byte)uVar9;
                }
                uVar21 = *param_2;
                uVar23 = 0x20;
                param_2[0x14] = 0;
                param_2[0x15] = 0x20;
              }
              bVar1 = uVar23 < uVar16;
              uVar9 = uVar16;
              param_6 = pbVar11;
            } while (0 < (int)uVar16);
            iVar24 = *(int *)(param_1 + 0x2d0);
          }
          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);
          if (fVar33 <= 0.0) {
            uVar8 = 0;
          }
          else {
            dVar42 = ((double)fVar33 * dVar40) / dVar38;
            if (dVar42 < dVar37) {
              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);
              uVar8 = extraout_v1_08;
            }
            else {
              uVar8 = 0xffffffff;
            }
          }
          bVar1 = uVar23 < uVar21;
          uVar9 = uVar21;
          param_6 = pbVar11;
          if (0 < (int)uVar21) {
            do {
              uVar15 = uVar23;
              if (!bVar1) {
                uVar15 = uVar9;
              }
              uVar10 = 0x20 - uVar23;
              uVar23 = uVar23 - uVar15;
              uVar16 = uVar9 - uVar15;
              uVar15 = *(uint *)(param_2[0x16] + uVar15 * 4);
              param_2[0x15] = uVar23;
              uVar9 = (uVar8 >> (uVar21 - uVar9 & 0x1f) & uVar15) << (uVar10 & 0x1f) | param_2[0x14]
              ;
              param_2[0x14] = uVar9;
              param_6 = pbVar11;
              if (uVar23 == 0) {
                param_6 = pbVar11 + 4;
                bVar14 = (byte)(uVar9 >> 0x18);
                bVar12 = (byte)(uVar9 >> 0x10);
                bVar13 = (byte)(uVar9 >> 8);
                if (param_2[0x11] == 1) {
                  *pbVar11 = (byte)uVar9;
                  pbVar11[1] = bVar13;
                  pbVar11[2] = bVar12;
                  pbVar11[3] = bVar14;
                }
                else {
                  *pbVar11 = bVar14;
                  pbVar11[1] = bVar12;
                  pbVar11[2] = bVar13;
                  pbVar11[3] = (byte)uVar9;
                }
                uVar21 = *param_2;
                uVar23 = 0x20;
                param_2[0x14] = 0;
                param_2[0x15] = 0x20;
              }
              bVar1 = uVar23 < uVar16;
              uVar9 = uVar16;
              pbVar11 = param_6;
            } while (0 < (int)uVar16);
            iVar24 = *(int *)(param_1 + 0x2d0);
          }
          if ((*(int *)(iVar24 + 0x34) != 4) ||
             (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4), fVar33 <= 0.0)) {
            uVar8 = 0;
          }
          else {
            dVar42 = ((double)fVar33 * dVar40) / dVar38;
            if (dVar42 < dVar37) {
              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));
              uVar8 = extraout_v1_09;
            }
            else {
              uVar8 = 0xffffffff;
            }
          }
          uVar23 = uVar21;
          pbVar11 = param_6;
          if (0 < (int)uVar21) {
            while( true ) {
              uVar15 = param_2[0x15];
              uVar9 = uVar15;
              if (uVar23 <= uVar15) {
                uVar9 = uVar23;
              }
              uVar10 = *(uint *)(param_2[0x16] + uVar9 * 4);
              param_2[0x15] = uVar15 - uVar9;
              uVar21 = (uVar8 >> (uVar21 - uVar23 & 0x1f) & uVar10) << (0x20 - uVar15 & 0x1f) |
                       param_2[0x14];
              param_2[0x14] = uVar21;
              param_6 = pbVar11;
              if (uVar15 - uVar9 == 0) {
                param_6 = pbVar11 + 4;
                bVar14 = (byte)(uVar21 >> 0x18);
                bVar12 = (byte)(uVar21 >> 0x10);
                bVar13 = (byte)(uVar21 >> 8);
                if (param_2[0x11] == 1) {
                  *pbVar11 = (byte)uVar21;
                  pbVar11[1] = bVar13;
                  pbVar11[2] = bVar12;
                  pbVar11[3] = bVar14;
                }
                else {
                  *pbVar11 = bVar14;
                  pbVar11[1] = bVar12;
                  pbVar11[2] = bVar13;
                  pbVar11[3] = (byte)uVar21;
                }
                param_2[0x14] = 0;
                param_2[0x15] = 0x20;
              }
              if ((int)(uVar23 - uVar9) < 1) break;
              uVar21 = *param_2;
              uVar23 = uVar23 - uVar9;
              pbVar11 = param_6;
            }
          }
          iVar22 = iVar22 + 1;
          param_6 = param_6 + param_2[10];
          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
          if (iVar22 == param_4) break;
          uVar21 = *param_2;
        }
        return;
      }
      if (param_4 < 1) {
        return;
      }
      iVar22 = 0;
      dVar40 = *(double *)(PTR_s_courses_003a88ec + -0x7538);
      dVar41 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
      dVar38 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
      dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
      uVar21 = 10;
      dVar25 = dVar37;
      dVar26 = dVar38;
      dVar27 = dVar40;
      dVar28 = dVar41;
      dVar29 = dVar40;
      dVar39 = dVar38;
      do {
        iVar24 = *(int *)(param_1 + 0x2d0);
        fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);
        if (NAN(fVar33)) {
          uVar8 = 0;
        }
        else {
          uVar8 = 0;
          if (0.0 < fVar33) {
            dVar42 = ((double)fVar33 * dVar27) / dVar26;
            if (dVar42 < dVar25) {
              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar28);
              uVar8 = extraout_v1_02;
            }
            else {
              uVar8 = 0xffffffff;
            }
          }
        }
        uVar23 = param_2[0x15];
        if (uVar23 == 0) {
          uVar23 = 8;
          param_2[0x15] = 8;
        }
        if ((int)uVar21 < 1) {
          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);
          if (!NAN(fVar33)) goto LAB_00166458;
          uVar8 = 0;
        }
        else {
          do {
            while( true ) {
              uVar9 = uVar23;
              if (uVar21 <= uVar23) {
                uVar9 = uVar21;
              }
              uVar15 = uVar21 - uVar9;
              uVar21 = uVar15;
              if ((int)uVar15 < 0) {
                uVar21 = 0;
              }
              if (uVar23 == 8) {
                *param_6 = 0;
              }
              uVar10 = uVar8 >> (uVar21 & 0x1f);
              if ((uVar21 & 0x20) != 0) {
                uVar10 = 0;
              }
              uVar23 = uVar23 - uVar9;
              param_2[0x15] = uVar23;
              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));
              if ((uVar23 & 0x20) != 0) {
                bVar13 = 0;
              }
              *param_6 = bVar13 | *param_6;
              if (uVar23 != 0) break;
              param_6 = param_6 + 1;
              param_2[0x15] = 8;
              uVar23 = 8;
              if ((int)uVar15 < 1) goto LAB_00166434;
            }
            uVar23 = param_2[0x15];
          } while (0 < (int)uVar15);
LAB_00166434:
          iVar24 = *(int *)(param_1 + 0x2d0);
          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);
          uVar21 = *param_2;
          if (NAN(fVar33)) {
LAB_00166cbc:
            uVar8 = 0;
          }
          else {
LAB_00166458:
            if (fVar33 <= 0.0) goto LAB_00166cbc;
            dVar42 = ((double)fVar33 * dVar29) / dVar39;
            if (dVar42 < dVar37) {
              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);
              uVar8 = extraout_v1_03;
            }
            else {
              uVar8 = 0xffffffff;
            }
          }
          if (uVar23 == 0) {
            uVar23 = 8;
            param_2[0x15] = 8;
          }
        }
        if ((int)uVar21 < 1) {
          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);
          if (!NAN(fVar33)) goto LAB_00166550;
          uVar8 = 0;
        }
        else {
          do {
            while( true ) {
              uVar9 = uVar23;
              if (uVar21 <= uVar23) {
                uVar9 = uVar21;
              }
              uVar15 = uVar21 - uVar9;
              uVar21 = uVar15;
              if ((int)uVar15 < 0) {
                uVar21 = 0;
              }
              if (uVar23 == 8) {
                *param_6 = 0;
              }
              uVar10 = uVar8 >> (uVar21 & 0x1f);
              if ((uVar21 & 0x20) != 0) {
                uVar10 = 0;
              }
              uVar23 = uVar23 - uVar9;
              param_2[0x15] = uVar23;
              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));
              if ((uVar23 & 0x20) != 0) {
                bVar13 = 0;
              }
              *param_6 = bVar13 | *param_6;
              if (uVar23 != 0) break;
              param_6 = param_6 + 1;
              param_2[0x15] = 8;
              uVar23 = 8;
              if ((int)uVar15 < 1) goto LAB_0016652c;
            }
            uVar23 = param_2[0x15];
          } while (0 < (int)uVar15);
LAB_0016652c:
          iVar24 = *(int *)(param_1 + 0x2d0);
          fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);
          uVar21 = *param_2;
          if (NAN(fVar33)) {
LAB_00166cb4:
            uVar8 = 0;
          }
          else {
LAB_00166550:
            if (fVar33 <= 0.0) goto LAB_00166cb4;
            dVar42 = ((double)fVar33 * dVar40) / dVar38;
            if (dVar42 < dVar37) {
              (*(code *)PTR_FUN_003a8954)(dVar42 + dVar41);
              uVar8 = extraout_v1_04;
            }
            else {
              uVar8 = 0xffffffff;
            }
          }
          if (uVar23 == 0) {
            uVar23 = 8;
            param_2[0x15] = 8;
          }
        }
        if ((int)uVar21 < 1) {
          uVar9 = 0;
          uVar8 = uVar21;
          if (*(int *)(iVar24 + 0x34) == 4) goto LAB_00166c44;
        }
        else {
          do {
            while( true ) {
              uVar9 = uVar23;
              if (uVar21 <= uVar23) {
                uVar9 = uVar21;
              }
              uVar15 = uVar21 - uVar9;
              uVar21 = uVar15;
              if ((int)uVar15 < 0) {
                uVar21 = 0;
              }
              if (uVar23 == 8) {
                *param_6 = 0;
              }
              uVar10 = uVar8 >> (uVar21 & 0x1f);
              if ((uVar21 & 0x20) != 0) {
                uVar10 = 0;
              }
              uVar23 = uVar23 - uVar9;
              param_2[0x15] = uVar23;
              bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));
              if ((uVar23 & 0x20) != 0) {
                bVar13 = 0;
              }
              *param_6 = bVar13 | *param_6;
              if (uVar23 != 0) break;
              param_6 = param_6 + 1;
              param_2[0x15] = 8;
              uVar23 = 8;
              if ((int)uVar15 < 1) goto LAB_0016662c;
            }
            uVar23 = param_2[0x15];
          } while (0 < (int)uVar15);
LAB_0016662c:
          iVar24 = *(int *)(param_1 + 0x2d0);
          uVar21 = *param_2;
          if (*(int *)(iVar24 + 0x34) == 4) {
LAB_00166c44:
            fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);
            if (fVar33 <= 0.0) goto LAB_00166640;
            dVar42 = ((double)fVar33 * dVar40) / dVar38;
            if (dVar42 < dVar37) {
              (*(code *)PTR_FUN_003a8954)(dVar42 + *(double *)(puVar2 + 0x1400));
              uVar9 = extraout_v1_05;
            }
            else {
              uVar9 = 0xffffffff;
            }
          }
          else {
LAB_00166640:
            uVar9 = 0;
          }
          uVar8 = uVar21;
          if (uVar23 == 0) {
            param_2[0x15] = 8;
          }
        }
        while (0 < (int)uVar8) {
          uVar15 = param_2[0x15];
          uVar23 = uVar15;
          if (uVar21 <= uVar15) {
            uVar23 = uVar21;
          }
          uVar8 = uVar21 - uVar23;
          uVar21 = uVar8;
          if ((int)uVar8 < 0) {
            uVar21 = 0;
          }
          if (uVar15 == 8) {
            *param_6 = 0;
          }
          uVar10 = uVar9 >> (uVar21 & 0x1f);
          if ((uVar21 & 0x20) != 0) {
            uVar10 = 0;
          }
          uVar15 = uVar15 - uVar23;
          param_2[0x15] = uVar15;
          bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar15 & 0x1f));
          if ((uVar15 & 0x20) != 0) {
            bVar13 = 0;
          }
          *param_6 = bVar13 | *param_6;
          if (uVar15 == 0) {
            param_6 = param_6 + 1;
            param_2[0x15] = 8;
          }
        }
        iVar22 = iVar22 + 1;
        param_6 = param_6 + param_2[10];
        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
        if (iVar22 == param_4) {
          return;
        }
        uVar21 = *param_2;
      } while( true );
    }
LAB_00165538:
    if (uVar21 == 0) {
      local_c0 = 0;
      local_b8 = 0;
      goto LAB_0016507c;
    }
  }
  else {
    if (uVar21 == 0x20) {
      if (param_2[2] == 1) {
        if (param_4 < 1) {
          return;
        }
        iVar22 = 0;
        fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
        do {
          fVar33 = (float)((double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4)
                           * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));
          bVar14 = (byte)((uint)fVar33 >> 8);
          bVar12 = (byte)((uint)fVar33 >> 0x10);
          bVar13 = (byte)((uint)fVar33 >> 0x18);
          if (param_2[0x11] == 1) {
            *param_6 = bVar13;
            param_6[1] = bVar12;
            param_6[2] = bVar14;
            param_6[3] = SUB41(fVar33,0);
          }
          else {
            *param_6 = SUB41(fVar33,0);
            param_6[1] = bVar14;
            param_6[2] = bVar12;
            param_6[3] = bVar13;
          }
          fVar33 = (float)((double)*(float *)(param_5 +
                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *
                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));
          bVar14 = (byte)((uint)fVar33 >> 8);
          bVar12 = (byte)((uint)fVar33 >> 0x10);
          bVar13 = (byte)((uint)fVar33 >> 0x18);
          if (param_2[0x11] == 1) {
            param_6[4] = bVar13;
            param_6[5] = bVar12;
            param_6[6] = bVar14;
            param_6[7] = SUB41(fVar33,0);
          }
          else {
            param_6[4] = SUB41(fVar33,0);
            param_6[5] = bVar14;
            param_6[6] = bVar12;
            param_6[7] = bVar13;
          }
          fVar33 = (float)((double)*(float *)(param_5 +
                                             *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *
                           *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));
          bVar14 = (byte)((uint)fVar33 >> 8);
          bVar12 = (byte)((uint)fVar33 >> 0x10);
          bVar13 = (byte)((uint)fVar33 >> 0x18);
          if (param_2[0x11] == 1) {
            param_6[8] = bVar13;
            param_6[9] = bVar12;
            param_6[10] = bVar14;
            param_6[0xb] = SUB41(fVar33,0);
          }
          else {
            param_6[8] = SUB41(fVar33,0);
            param_6[9] = bVar14;
            param_6[10] = bVar12;
            param_6[0xb] = bVar13;
          }
          if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {
            dVar25 = (double)(fVar31 - *(float *)(param_5 +
                                                 *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));
          }
          else {
            dVar25 = 0.0;
          }
          fVar33 = (float)(dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4));
          bVar14 = (byte)((uint)fVar33 >> 8);
          bVar12 = (byte)((uint)fVar33 >> 0x10);
          bVar13 = (byte)((uint)fVar33 >> 0x18);
          if (param_2[0x11] == 1) {
            param_6[0xc] = bVar13;
            param_6[0xd] = bVar12;
            param_6[0xe] = bVar14;
            param_6[0xf] = SUB41(fVar33,0);
          }
          else {
            param_6[0xc] = SUB41(fVar33,0);
            param_6[0xd] = bVar14;
            param_6[0xe] = bVar12;
            param_6[0xf] = bVar13;
          }
          iVar22 = iVar22 + 1;
          param_6 = param_6 + param_2[10] + 0x10;
          param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
        } while (iVar22 != param_4);
        return;
      }
      if (param_4 < 1) {
        return;
      }
      iVar22 = 0;
      dVar26 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5b00);
      dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1410);
      dVar25 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x5af8);
      dVar28 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
      do {
        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4);
        if (fVar33 <= 0.0) {
          bVar6 = 0;
          bVar12 = 0;
          bVar13 = 0;
          bVar19 = 0;
          bVar14 = 0;
          bVar17 = 0;
          bVar18 = 0;
          bVar20 = 0;
          if (param_2[0x11] != 1) goto LAB_00165ecc;
LAB_001660ec:
          *param_6 = bVar14;
          param_6[1] = bVar17;
          param_6[2] = bVar18;
          param_6[3] = bVar20;
        }
        else {
          dVar29 = (double)fVar33 * dVar26;
          bVar12 = 0xff;
          if (dVar29 < dVar25) {
            dVar29 = dVar29 + dVar28;
            if (dVar29 < dVar27) {
              uVar21 = (uint)dVar29;
            }
            else {
              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;
            }
            bVar19 = (byte)(uVar21 >> 0x18);
            bVar13 = (byte)(uVar21 >> 0x10);
            bVar12 = (byte)(uVar21 >> 8);
            bVar6 = (byte)uVar21;
          }
          else {
            bVar6 = 0xff;
            bVar13 = 0xff;
            bVar19 = 0xff;
          }
          bVar14 = bVar6;
          bVar17 = bVar12;
          bVar18 = bVar13;
          bVar20 = bVar19;
          if (param_2[0x11] == 1) goto LAB_001660ec;
LAB_00165ecc:
          *param_6 = bVar19;
          param_6[1] = bVar13;
          param_6[2] = bVar12;
          param_6[3] = bVar6;
        }
        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4);
        if (fVar33 <= 0.0) {
          bVar6 = 0;
          bVar12 = 0;
          bVar13 = 0;
          bVar19 = 0;
          bVar14 = 0;
          bVar17 = 0;
          bVar18 = 0;
          bVar20 = 0;
          if (param_2[0x11] != 1) goto LAB_00165f54;
LAB_0016611c:
          param_6[4] = bVar14;
          param_6[5] = bVar17;
          param_6[6] = bVar18;
          param_6[7] = bVar20;
        }
        else {
          dVar29 = (double)fVar33 * dVar26;
          bVar12 = 0xff;
          if (dVar29 < dVar25) {
            dVar29 = dVar29 + dVar28;
            if (dVar29 < dVar27) {
              uVar21 = (uint)dVar29;
            }
            else {
              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;
            }
            bVar19 = (byte)(uVar21 >> 0x18);
            bVar13 = (byte)(uVar21 >> 0x10);
            bVar12 = (byte)(uVar21 >> 8);
            bVar6 = (byte)uVar21;
          }
          else {
            bVar6 = 0xff;
            bVar13 = 0xff;
            bVar19 = 0xff;
          }
          bVar14 = bVar6;
          bVar17 = bVar12;
          bVar18 = bVar13;
          bVar20 = bVar19;
          if (param_2[0x11] == 1) goto LAB_0016611c;
LAB_00165f54:
          param_6[4] = bVar19;
          param_6[5] = bVar13;
          param_6[6] = bVar12;
          param_6[7] = bVar6;
        }
        fVar33 = *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4);
        if (fVar33 <= 0.0) {
          bVar6 = 0;
          bVar12 = 0;
          bVar13 = 0;
          bVar19 = 0;
          bVar14 = 0;
          bVar17 = 0;
          bVar18 = 0;
          bVar20 = 0;
          if (param_2[0x11] != 1) goto LAB_00165fe8;
LAB_001660b8:
          param_6[8] = bVar14;
          param_6[9] = bVar17;
          param_6[10] = bVar18;
          param_6[0xb] = bVar20;
        }
        else {
          dVar29 = (double)fVar33 * dVar26;
          bVar12 = 0xff;
          if (dVar29 < dVar25) {
            dVar29 = dVar29 + dVar28;
            if (dVar29 < dVar27) {
              uVar21 = (uint)dVar29;
            }
            else {
              uVar21 = (int)(dVar29 - dVar27) | 0x80000000;
            }
            bVar19 = (byte)(uVar21 >> 0x18);
            bVar13 = (byte)(uVar21 >> 0x10);
            bVar12 = (byte)(uVar21 >> 8);
            bVar6 = (byte)uVar21;
          }
          else {
            bVar6 = 0xff;
            bVar13 = 0xff;
            bVar19 = 0xff;
          }
          bVar14 = bVar6;
          bVar17 = bVar12;
          bVar18 = bVar13;
          bVar20 = bVar19;
          if (param_2[0x11] == 1) goto LAB_001660b8;
LAB_00165fe8:
          param_6[8] = bVar19;
          param_6[9] = bVar13;
          param_6[10] = bVar12;
          param_6[0xb] = bVar6;
        }
        if ((*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) != 4) ||
           (fVar33 = fVar31 - *(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4),
           fVar33 <= 0.0)) {
          bVar14 = 0;
          bVar12 = 0;
          bVar13 = 0;
          bVar17 = 0;
LAB_00165e14:
          if (param_2[0x11] != 1) goto LAB_00165e24;
LAB_00166084:
          param_6[0xc] = bVar14;
          param_6[0xd] = bVar12;
          param_6[0xe] = bVar13;
          param_6[0xf] = bVar17;
        }
        else {
          dVar29 = (double)fVar33 * dVar26;
          if (dVar25 <= dVar29) {
            bVar14 = 0xff;
            bVar12 = 0xff;
            bVar13 = 0xff;
            bVar17 = 0xff;
            goto LAB_00165e14;
          }
          dVar29 = dVar29 + dVar28;
          if (dVar29 < *(double *)(puVar2 + 0x1410)) {
            uVar21 = (uint)dVar29;
          }
          else {
            uVar21 = (int)(dVar29 - *(double *)(puVar2 + 0x1410)) | 0x80000000;
          }
          bVar17 = (byte)(uVar21 >> 0x18);
          bVar13 = (byte)(uVar21 >> 0x10);
          bVar12 = (byte)(uVar21 >> 8);
          bVar14 = (byte)uVar21;
          if (param_2[0x11] == 1) goto LAB_00166084;
LAB_00165e24:
          param_6[0xc] = bVar17;
          param_6[0xd] = bVar13;
          param_6[0xe] = bVar12;
          param_6[0xf] = bVar14;
        }
        iVar22 = iVar22 + 1;
        param_6 = param_6 + param_2[10] + 0x10;
        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
        if (iVar22 == param_4) {
          return;
        }
      } while( true );
    }
    if (uVar21 != 0x40) goto LAB_00165538;
    if (param_2[2] == 1) {
      if (param_4 < 1) {
        return;
      }
      iVar22 = 0;
      fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
      do {
        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 8) * 4) *
                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);
        bVar13 = (byte)((ulonglong)dVar25 >> 0x20);
        bVar6 = (byte)((ulonglong)dVar25 >> 8);
        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);
        bVar14 = (byte)((ulonglong)dVar25 >> 0x18);
        bVar18 = (byte)((ulonglong)dVar25 >> 0x28);
        bVar17 = (byte)((ulonglong)dVar25 >> 0x30);
        bVar12 = (byte)((ulonglong)dVar25 >> 0x38);
        if (param_2[0x11] == 1) {
          *param_6 = bVar12;
          param_6[1] = bVar17;
          param_6[2] = bVar18;
          param_6[3] = bVar13;
          param_6[4] = bVar14;
          param_6[5] = bVar20;
          param_6[6] = bVar6;
          param_6[7] = SUB81(dVar25,0);
        }
        else {
          *param_6 = SUB81(dVar25,0);
          param_6[1] = bVar6;
          param_6[2] = bVar20;
          param_6[3] = bVar14;
          param_6[4] = bVar13;
          param_6[5] = bVar18;
          param_6[6] = bVar17;
          param_6[7] = bVar12;
        }
        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x14) * 4) *
                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);
        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);
        bVar6 = (byte)((ulonglong)dVar25 >> 8);
        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);
        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);
        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);
        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);
        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);
        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);
        if (param_2[0x11] == 1) {
          param_6[8] = bVar13;
          param_6[9] = bVar14;
          param_6[10] = bVar17;
          param_6[0xb] = bVar18;
          param_6[0xc] = bVar12;
          param_6[0xd] = bVar20;
          param_6[0xe] = bVar6;
          param_6[0xf] = bVar19;
        }
        else {
          param_6[8] = bVar19;
          param_6[9] = bVar6;
          param_6[10] = bVar20;
          param_6[0xb] = bVar12;
          param_6[0xc] = bVar18;
          param_6[0xd] = bVar17;
          param_6[0xe] = bVar14;
          param_6[0xf] = bVar13;
        }
        dVar25 = (double)*(float *)(param_5 + *(int *)(*(int *)(param_1 + 0x2d0) + 0x20) * 4) *
                 *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);
        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);
        bVar6 = (byte)((ulonglong)dVar25 >> 8);
        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);
        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);
        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);
        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);
        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);
        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);
        if (param_2[0x11] == 1) {
          param_6[0x10] = bVar13;
          param_6[0x11] = bVar14;
          param_6[0x12] = bVar17;
          param_6[0x13] = bVar18;
          param_6[0x14] = bVar12;
          param_6[0x15] = bVar20;
          param_6[0x16] = bVar6;
          param_6[0x17] = bVar19;
        }
        else {
          param_6[0x10] = bVar19;
          param_6[0x11] = bVar6;
          param_6[0x12] = bVar20;
          param_6[0x13] = bVar12;
          param_6[0x14] = bVar18;
          param_6[0x15] = bVar17;
          param_6[0x16] = bVar14;
          param_6[0x17] = bVar13;
        }
        if (*(int *)(*(int *)(param_1 + 0x2d0) + 0x34) == 4) {
          dVar25 = (double)(fVar31 - *(float *)(param_5 +
                                               *(int *)(*(int *)(param_1 + 0x2d0) + 0x38) * 4));
        }
        else {
          dVar25 = 0.0;
        }
        dVar25 = dVar25 * *(double *)(param_2 + 0x12) + *(double *)(param_2 + 4);
        bVar19 = (byte)((ulonglong)dVar25 & 0xff000000ff);
        bVar6 = (byte)((ulonglong)dVar25 >> 8);
        bVar20 = (byte)((ulonglong)dVar25 >> 0x10);
        bVar12 = (byte)((ulonglong)dVar25 >> 0x18);
        bVar18 = (byte)(((ulonglong)dVar25 & 0xff000000ff) >> 0x20);
        bVar17 = (byte)((ulonglong)dVar25 >> 0x28);
        bVar14 = (byte)((ulonglong)dVar25 >> 0x30);
        bVar13 = (byte)((ulonglong)dVar25 >> 0x38);
        if (param_2[0x11] == 1) {
          param_6[0x18] = bVar13;
          param_6[0x19] = bVar14;
          param_6[0x1a] = bVar17;
          param_6[0x1b] = bVar18;
          param_6[0x1c] = bVar12;
          param_6[0x1d] = bVar20;
          param_6[0x1e] = bVar6;
          param_6[0x1f] = bVar19;
        }
        else {
          param_6[0x18] = bVar19;
          param_6[0x19] = bVar6;
          param_6[0x1a] = bVar20;
          param_6[0x1b] = bVar12;
          param_6[0x1c] = bVar18;
          param_6[0x1d] = bVar17;
          param_6[0x1e] = bVar14;
          param_6[0x1f] = bVar13;
        }
        iVar22 = iVar22 + 1;
        param_6 = param_6 + param_2[10] + 0x20;
        param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
      } while (iVar22 != param_4);
      return;
    }
  }
  uVar8 = 0;
  if (uVar21 < 0x41) {
    uVar8 = uVar21;
  }
  uVar8 = uVar8 - 1;
  uVar15 = 2 << (uVar8 & 0x1f);
  uVar9 = uVar15;
  uVar23 = 1 >> (~uVar8 & 0x1f);
  if ((uVar8 & 0x20) != 0) {
    uVar9 = 0;
    uVar23 = uVar15;
  }
  local_b8 = uVar9 - 1;
  local_c0 = (uint)(local_b8 < uVar9) + (uVar23 - 1);
LAB_0016507c:
  if (param_4 < 1) {
    return;
  }
  uVar36 = 0;
  iVar24 = *(int *)(param_1 + 0x2d0);
  iVar22 = 0;
  dVar39 = *(double *)(PTR_LAB_003a88e0 + 0x1a58);
  dVar29 = *(double *)(PTR_LAB_003a88e0 + 0x1a60);
  dVar37 = *(double *)(PTR_LAB_003a88e0 + 0x1400);
  fVar31 = *(float *)(PTR_LAB_003a88e0 + 0x1a50);
  fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);
  dVar25 = dVar29;
  dVar26 = dVar39;
  dVar27 = dVar37;
  dVar28 = dVar29;
  if (!NAN(fVar33)) goto LAB_001650f0;
LAB_00165520:
  do {
    uVar43 = 0;
LAB_00165130:
    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);
    uVar23 = param_2[0x15];
    if (uVar23 == 0) {
      uVar23 = 8;
      param_2[0x15] = 8;
    }
    if ((int)uVar21 < 1) {
      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);
      if (!NAN(fVar33)) goto LAB_00165204;
      uVar43 = 0;
    }
    else {
      do {
        while( true ) {
          uVar9 = uVar23;
          if (uVar21 <= uVar23) {
            uVar9 = uVar21;
          }
          uVar15 = uVar21 - uVar9;
          uVar21 = uVar15;
          if ((int)uVar15 < 0) {
            uVar21 = 0;
          }
          if (uVar23 == 8) {
            *param_6 = 0;
          }
          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);
          if ((uVar21 & 0x20) != 0) {
            uVar10 = uVar8 >> (uVar21 & 0x1f);
          }
          uVar23 = uVar23 - uVar9;
          param_2[0x15] = uVar23;
          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));
          if ((uVar23 & 0x20) != 0) {
            bVar13 = 0;
          }
          *param_6 = bVar13 | *param_6;
          if (uVar23 != 0) break;
          param_6 = param_6 + 1;
          param_2[0x15] = 8;
          uVar23 = 8;
          if ((int)uVar15 < 1) goto LAB_001651e4;
        }
        uVar23 = param_2[0x15];
      } while (0 < (int)uVar15);
LAB_001651e4:
      iVar24 = *(int *)(param_1 + 0x2d0);
      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x14) * 4);
      uVar21 = *param_2;
      if (NAN(fVar33)) {
LAB_001655cc:
        uVar43 = 0;
      }
      else {
LAB_00165204:
        if (fVar33 <= (float)uVar36) goto LAB_001655cc;
        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);
        dVar38 = (dVar38 * (double)fVar33) / dVar39;
        if (dVar38 < dVar28) {
          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);
        }
        else {
          uVar43 = 0xffffffffffffffff;
        }
      }
      if (uVar23 == 0) {
        uVar23 = 8;
        param_2[0x15] = 8;
      }
    }
    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);
    if ((int)uVar21 < 1) {
      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);
      if (!NAN(fVar33)) goto LAB_0016531c;
      uVar43 = 0;
    }
    else {
      do {
        while( true ) {
          uVar9 = uVar23;
          if (uVar21 <= uVar23) {
            uVar9 = uVar21;
          }
          uVar15 = uVar21 - uVar9;
          uVar21 = uVar15;
          if ((int)uVar15 < 0) {
            uVar21 = 0;
          }
          if (uVar23 == 8) {
            *param_6 = 0;
          }
          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);
          if ((uVar21 & 0x20) != 0) {
            uVar10 = uVar8 >> (uVar21 & 0x1f);
          }
          uVar23 = uVar23 - uVar9;
          param_2[0x15] = uVar23;
          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));
          if ((uVar23 & 0x20) != 0) {
            bVar13 = 0;
          }
          *param_6 = bVar13 | *param_6;
          if (uVar23 != 0) break;
          param_6 = param_6 + 1;
          param_2[0x15] = 8;
          uVar23 = 8;
          if ((int)uVar15 < 1) goto LAB_001652fc;
        }
        uVar23 = param_2[0x15];
      } while (0 < (int)uVar15);
LAB_001652fc:
      iVar24 = *(int *)(param_1 + 0x2d0);
      fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 8) * 4);
      uVar21 = *param_2;
      if (NAN(fVar33)) {
LAB_001655c0:
        uVar43 = 0;
      }
      else {
LAB_0016531c:
        if (fVar33 <= (float)uVar36) goto LAB_001655c0;
        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);
        dVar38 = (dVar38 * (double)fVar33) / dVar39;
        if (dVar38 < dVar29) {
          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);
        }
        else {
          uVar43 = 0xffffffffffffffff;
        }
      }
      if (uVar23 == 0) {
        uVar23 = 8;
        param_2[0x15] = 8;
      }
    }
    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);
    if ((int)uVar21 < 1) {
      if (*(int *)(iVar24 + 0x34) == 4) goto LAB_0016554c;
      uVar43 = 0;
    }
    else {
      do {
        while( true ) {
          uVar9 = uVar23;
          if (uVar21 <= uVar23) {
            uVar9 = uVar21;
          }
          uVar15 = uVar21 - uVar9;
          uVar21 = uVar15;
          if ((int)uVar15 < 0) {
            uVar21 = 0;
          }
          if (uVar23 == 8) {
            *param_6 = 0;
          }
          uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);
          if ((uVar21 & 0x20) != 0) {
            uVar10 = uVar8 >> (uVar21 & 0x1f);
          }
          uVar23 = uVar23 - uVar9;
          param_2[0x15] = uVar23;
          bVar13 = (byte)((~(-1 << (uVar9 & 0x1f)) & uVar10) << (uVar23 & 0x1f));
          if ((uVar23 & 0x20) != 0) {
            bVar13 = 0;
          }
          *param_6 = bVar13 | *param_6;
          if (uVar23 != 0) break;
          param_6 = param_6 + 1;
          param_2[0x15] = 8;
          uVar23 = 8;
          if ((int)uVar15 < 1) goto LAB_00165418;
        }
        uVar23 = param_2[0x15];
      } while (0 < (int)uVar15);
LAB_00165418:
      iVar24 = *(int *)(param_1 + 0x2d0);
      uVar21 = *param_2;
      if (*(int *)(iVar24 + 0x34) == 4) {
LAB_0016554c:
        fVar33 = fVar31 - *(float *)(param_5 + *(int *)(iVar24 + 0x38) * 4);
        if (fVar33 <= (float)uVar36) goto LAB_00165430;
        dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);
        dVar38 = (dVar38 * (double)fVar33) / dVar39;
        if (dVar38 < dVar29) {
          uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar37);
        }
        else {
          uVar43 = 0xffffffffffffffff;
        }
      }
      else {
LAB_00165430:
        uVar43 = 0;
      }
      if (uVar23 == 0) {
        param_2[0x15] = 8;
      }
    }
    uVar8 = (uint)((ulonglong)uVar43 >> 0x20);
    if (0 < (int)uVar21) {
      do {
        uVar9 = param_2[0x15];
        uVar23 = uVar9;
        if (uVar21 <= uVar9) {
          uVar23 = uVar21;
        }
        uVar15 = uVar21 - uVar23;
        uVar21 = uVar15;
        if ((int)uVar15 < 0) {
          uVar21 = 0;
        }
        if (uVar9 == 8) {
          *param_6 = 0;
        }
        uVar10 = (uVar8 << 1) << (~uVar21 & 0x1f) | (uint)uVar43 >> (uVar21 & 0x1f);
        if ((uVar21 & 0x20) != 0) {
          uVar10 = uVar8 >> (uVar21 & 0x1f);
        }
        uVar9 = uVar9 - uVar23;
        param_2[0x15] = uVar9;
        bVar13 = (byte)((~(-1 << (uVar23 & 0x1f)) & uVar10) << (uVar9 & 0x1f));
        if ((uVar9 & 0x20) != 0) {
          bVar13 = 0;
        }
        *param_6 = bVar13 | *param_6;
        if (uVar9 == 0) {
          param_6 = param_6 + 1;
          param_2[0x15] = 8;
        }
      } while (0 < (int)uVar15);
    }
    iVar22 = iVar22 + 1;
    param_6 = param_6 + param_2[10];
    param_5 = param_5 + *(int *)(param_1 + 0x2c0) * 4;
    if (iVar22 == param_4) {
      return;
    }
    iVar24 = *(int *)(param_1 + 0x2d0);
    fVar33 = *(float *)(param_5 + *(int *)(iVar24 + 0x20) * 4);
    uVar21 = *param_2;
  } while (NAN(fVar33));
LAB_001650f0:
  if (fVar33 <= (float)uVar36) goto LAB_00165520;
  dVar38 = (double)(*(code *)PTR_FUN_003a8960)(local_c0,local_b8);
  dVar38 = (dVar38 * (double)fVar33) / dVar26;
  if (dVar38 < dVar25) {
    uVar43 = (*(code *)PTR_FUN_003a8954)(dVar38 + dVar27);
  }
  else {
    uVar43 = 0xffffffffffffffff;
  }
  goto LAB_00165130;
}

