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

Image * TrimImage(Image *image,ExceptionInfo *exception)

{
  double *pdVar1;
  Image *pIVar2;
  size_t sVar3;
  int iVar4;
  int iVar5;
  undefined4 uVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  undefined4 uVar10;
  double *pdVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  uint uVar14;
  int iVar15;
  float *pfVar16;
  uint uVar17;
  double *pdVar18;
  double *pdVar19;
  float *pfVar20;
  int iVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  int iVar25;
  int *piVar26;
  int iVar27;
  undefined *puVar28;
  code *pcVar29;
  double *pdVar30;
  undefined4 uVar31;
  double dVar32;
  double dVar33;
  double dVar34;
  ulonglong uVar35;
  undefined8 uVar36;
  int iVar37;
  int iStack_4e8;
  int iStack_4e4;
  undefined8 uStack_4a0;
  undefined8 uStack_2a0;
  Image *pIStack_9c;
  Image *pIStack_98;
  Image *pIStack_94;
  ExceptionInfo *pEStack_90;
  size_t local_38;
  size_t local_34;
  int local_30;
  int local_2c;
  RectangleInfo geometry;
  
  pdVar1 = *(double **)PTR___stack_chk_guard_003fa248;
  if (image == (Image *)0x0) {
    pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)
                                (PTR_UINT_003f98e4 + -0x7b0,
                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96e,
                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);
    return pIVar2;
  }
  if (image->signature != 0xabacadab) {
    pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)
                                (PTR_UINT_003f98e4 + -0x784,
                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96f,
                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);
    return pIVar2;
  }
  if (image->debug != MagickFalse) {
    (*(code *)PTR_LogMagickEvent_003fa1f8)
              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,
               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);
  }
  (*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,image,exception);
  geometry.width = local_38;
  geometry.height = local_34;
  geometry.x = local_30;
  geometry.y = local_2c;
  if ((local_38 == 0) || (local_34 == 0)) {
    pIVar2 = (Image *)(*(code *)PTR_CloneImage_003fa848)(image,1,1,1);
    if (pIVar2 != (Image *)0x0) {
      (pIVar2->background_color).alpha_trait = BlendPixelTrait;
      *(undefined4 *)((int)&(pIVar2->background_color).alpha + 4) = 0;
      *(undefined4 *)&(pIVar2->background_color).alpha = 0;
      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(pIVar2,exception);
      sVar3 = (image->page).height;
      (pIVar2->page).width = (image->page).width;
      (pIVar2->page).height = sVar3;
      (pIVar2->page).x = -1;
      (pIVar2->page).y = -1;
    }
  }
  else {
    geometry.x = local_30 + (image->page).x;
    geometry.y = local_2c + (image->page).y;
    pIVar2 = (Image *)(*(code *)PTR_CropImage_003fa0d0)(image,&geometry,exception);
    if (pIVar2 != (Image *)0x0) {
      (*(code *)PTR_Update8BIMClipPath_003f9ba0)(pIVar2,image->columns,image->rows,&geometry);
    }
  }
  if (pdVar1 == *(double **)PTR___stack_chk_guard_003fa248) {
    return pIVar2;
  }
  puVar28 = PTR___stack_chk_fail_003fa07c;
  (*(code *)PTR___stack_chk_fail_003fa07c)();
  pIStack_9c = (Image *)**(undefined4 **)(puVar28 + 0x2033d8);
  pdVar30 = *(double **)(pdVar1 + 2);
  iStack_4e4 = *(int *)((int)pdVar30 + 0x1c);
  pIStack_98 = image;
  pIStack_94 = pIVar2;
  pEStack_90 = exception;
  iVar4 = (**(code **)(puVar28 + 0x203ab4))();
  iVar5 = (**(code **)(puVar28 + 0x2036b0))();
  if (iVar4 == 0) {
    trap(7);
  }
  iVar37 = iStack_4e4 / iVar4;
  iStack_4e4 = iStack_4e4 % iVar4;
  if (iVar5 < iStack_4e4) {
    iVar37 = iVar37 + 1;
    iStack_4e4 = 0;
  }
  pdVar18 = (double *)(iVar37 * iVar5);
  iStack_4e4 = (int)pdVar18 + iStack_4e4;
  iVar37 = iVar37 + iStack_4e4;
  if (iStack_4e4 < iVar37) {
    uVar10 = *(undefined4 *)((int)pdVar1 + 0xc);
    uVar6 = *(undefined4 *)(pdVar1 + 1);
    iVar5 = *(int *)(pdVar1 + 5);
    pdVar11 = *(double **)((int)pdVar1 + 0x24);
    uVar12 = *(undefined4 *)(pdVar1 + 4);
    uVar13 = *(undefined4 *)((int)pdVar1 + 0x1c);
    dVar34 = *pdVar1;
    pdVar19 = *(double **)(pdVar1 + 3);
    uVar14 = *(uint *)((int)pdVar1 + 0x14);
    iVar4 = *(int *)(puVar28 + 0x202a88);
    uVar35 = (ulonglong)*(uint *)(*(int *)(puVar28 + 0x202a70) + 0x4aa8);
    pdVar18 = pdVar19;
    do {
      if (*(int *)((int)pdVar1 + 0x2c) != 0) {
        iVar7 = (**(code **)(puVar28 + 0x203804))
                          (uVar12,-((int)uVar14 / 2),iStack_4e4 - ((uint)pdVar19 >> 1),
                           uVar14 + *(int *)(pdVar30 + 3),pdVar19,uVar13);
        pdVar18 = pdVar11;
        iVar8 = (**(code **)(puVar28 + 0x202df8))
                          (pdVar11,0,iStack_4e4,*(undefined4 *)(iVar5 + 0x18),1,uVar13);
        if ((iVar7 == 0) || (iVar8 == 0)) {
          *(undefined4 *)((int)pdVar1 + 0x2c) = 0;
        }
        else {
          iVar25 = *(int *)(pdVar30 + 0x58);
          iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *
                   iVar25;
          if (0 < iVar25) {
            iVar23 = 0;
            iVar22 = 0;
            do {
              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);
              iVar9 = iVar21 * 0xc;
              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&
                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {
                if ((uVar17 & 1) == 0) {
                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;
                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;
                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;
                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;
                  if (0 < (int)pdVar19) {
                    pdVar18 = (double *)0x0;
                    iVar9 = iVar7;
                    do {
                      pfVar16 = (float *)(iVar9 + iVar22 * 4);
                      if (0 < (int)uVar14) {
                        dVar33 = (double)(&uStack_2a0)[iVar21];
                        uVar17 = 0;
                        do {
                          if (uVar14 - 1 == uVar17) {
                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16
                            ;
                          }
                          dVar33 = dVar33 + (double)*pfVar16;
                          uVar17 = uVar17 + 1;
                          pfVar16 = pfVar16 + iVar25;
                        } while (uVar14 != uVar17);
                        iVar9 = iVar9 + uVar14 * iVar25 * 4;
                        (&uStack_2a0)[iVar21] = dVar33;
                      }
                      pdVar18 = (double *)((int)pdVar18 + 1);
                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;
                    } while (pdVar18 != pdVar19);
                  }
                }
                else {
                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;
                  if (*(int *)(iVar9 + 4) != 0) {
                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =
                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);
                  }
                }
              }
              iVar22 = iVar22 + 1;
              iVar25 = *(int *)(pdVar30 + 0x58);
              iVar23 = iVar23 + 0xc;
            } while (iVar22 < iVar25);
          }
          if (0 < *(int *)(pdVar30 + 3)) {
            iStack_4e8 = 0;
            uVar36 = 0;
            do {
              iVar25 = *(int *)(pdVar30 + 0x58);
              if (0 < iVar25) {
                iVar22 = iVar7 + iVar24 * 4;
                iVar9 = 0;
                iVar23 = 0;
                do {
                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);
                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {
                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;
                    if (*(uint *)(iVar27 + 4) != 0) {
                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {
                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];
                        (&uStack_2a0)[iVar21] = dVar33;
                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;
                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;
                        if (0 < (int)pdVar19) {
                          iVar15 = (uVar14 - 1) * 4 * iVar25;
                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;
                          pfVar20 = (float *)(iVar7 + iVar23 * 4);
                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);
                          dVar32 = 0.0;
                          pdVar18 = (double *)0x0;
                          do {
                            dVar32 = dVar32 + (double)*pfVar20;
                            dVar33 = dVar33 + (double)*pfVar16;
                            pdVar18 = (double *)((int)pdVar18 + 1);
                            pfVar20 = (float *)((int)pfVar20 + iVar25);
                            pfVar16 = (float *)((int)pfVar16 + iVar25);
                          } while (pdVar18 != pdVar19);
                          (&uStack_4a0)[iVar21] = dVar32;
                          (&uStack_2a0)[iVar21] = dVar33;
                        }
                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);
                        uVar31 = (undefined4)uVar36;
                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=
                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {
                          iVar25 = *(int *)(iVar27 + 8);
                        }
                        else {
                          uVar31 = (undefined4)uVar35;
                          iVar25 = *(int *)(iVar27 + 8);
                        }
                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;
                      }
                      else {
                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =
                             *(undefined4 *)(iVar22 + iVar23 * 4);
                      }
                    }
                  }
                  iVar23 = iVar23 + 1;
                  iVar25 = *(int *)(pdVar30 + 0x58);
                  iVar9 = iVar9 + 0xc;
                } while (iVar23 < iVar25);
              }
              iVar7 = iVar7 + iVar25 * 4;
              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;
              iStack_4e8 = iStack_4e8 + 1;
            } while (iStack_4e8 < *(int *)(pdVar30 + 3));
          }
          pdVar18 = pdVar11;
          iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13);
          if (iVar7 == 0) {
            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;
          }
          if (*(int *)(pdVar30 + 0x65) != 0) {
            piVar26 = *(int **)(pdVar1 + 6);
            (**(code **)(puVar28 + 0x20348c))();
            uVar17 = piVar26[1] + 1;
            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;
            piVar26[1] = uVar17;
            (**(code **)(puVar28 + 0x2035e0))();
            pdVar18 = pdVar30;
            iVar7 = (**(code **)(puVar28 + 0x202e5c))
                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),
                               (*(undefined4 **)(pdVar1 + 6))[1],0,
                               *(undefined4 *)((int)pdVar30 + 0x1c));
            if (iVar7 == 0) {
              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;
            }
          }
        }
      }
      iStack_4e4 = iStack_4e4 + 1;
    } while (iVar37 != iStack_4e4);
  }
  if (pIStack_9c != (Image *)**(undefined4 **)(puVar28 + 0x2033d8)) {
    pcVar29 = *(code **)(puVar28 + 0x20320c);
    (*pcVar29)();
    iVar37 = *(int *)(pdVar18 + 1);
    iVar7 = *(int *)(iVar37 + 0x1c);
    iVar4 = (**(code **)(pcVar29 + 0x203418))();
    iVar5 = (**(code **)(pcVar29 + 0x203014))();
    if (iVar4 == 0) {
      trap(7);
    }
    iVar8 = iVar7 / iVar4;
    iVar7 = iVar7 % iVar4;
    if (iVar5 < iVar7) {
      iVar8 = iVar8 + 1;
      iVar7 = 0;
    }
    iVar7 = iVar8 * iVar5 + iVar7;
    iVar8 = iVar8 + iVar7;
    pIVar2 = *(Image **)(pcVar29 + 0x2023d4);
    if (iVar7 < iVar8) {
      uVar10 = *(undefined4 *)(pdVar18 + 2);
      uVar6 = *(undefined4 *)((int)pdVar18 + 0xc);
      dVar34 = *pdVar18;
      uVar35 = (ulonglong)*(uint *)(pIVar2[1].magick_filename + 0x390);
      iVar4 = *(int *)(pcVar29 + 0x2023ec);
      do {
        pIVar2 = (Image *)0x1;
        if (*(int *)((int)pdVar18 + 0x14) != 0) {
          pfVar16 = (float *)(**(code **)(pcVar29 + 0x203158))
                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6);
          if (pfVar16 == (float *)0x0) {
            *(undefined4 *)((int)pdVar18 + 0x14) = 0;
            pIVar2 = (Image *)0x0;
          }
          else {
            iVar5 = 0;
            if (0 < *(int *)(iVar37 + 0x18)) {
              do {
                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);
                iVar24 = *(int *)(iVar37 + 0x2c0);
                if (0 < iVar24) {
                  iVar22 = 0;
                  iVar25 = 0;
                  pfVar20 = pfVar16;
                  do {
                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +
                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)
                    {
                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {
                        dVar33 = (double)*pfVar20;
                      }
                      if (dVar33 <= dVar34) {
                        *pfVar20 = 0.0;
                      }
                      else {
                        *pfVar20 = (float)uVar35;
                      }
                    }
                    iVar25 = iVar25 + 1;
                    iVar24 = *(int *)(iVar37 + 0x2c0);
                    iVar22 = iVar22 + 0xc;
                    pfVar20 = pfVar20 + 1;
                  } while (iVar25 < iVar24);
                }
                pfVar16 = pfVar16 + iVar24;
                iVar5 = iVar5 + 1;
              } while (iVar5 < *(int *)(iVar37 + 0x18));
            }
            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);
            if (iVar5 == 0) {
              *(undefined4 *)((int)pdVar18 + 0x14) = 0;
            }
            pIVar2 = *(Image **)(iVar37 + 0x328);
            if (pIVar2 != (Image *)0x0) {
              piVar26 = *(int **)(pdVar18 + 3);
              (**(code **)(pcVar29 + 0x202df0))();
              uVar14 = piVar26[1] + 1;
              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;
              piVar26[1] = uVar14;
              (**(code **)(pcVar29 + 0x202f44))();
              piVar26 = *(int **)(pdVar18 + 3);
              iVar5 = *piVar26;
              uVar14 = piVar26[1];
              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;
              piVar26[1] = uVar14 + 1;
              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))
                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,
                                           *(undefined4 *)(iVar37 + 0x1c));
              if (pIVar2 == (Image *)0x0) {
                *(undefined4 *)((int)pdVar18 + 0x14) = 0;
              }
            }
          }
        }
        iVar7 = iVar7 + 1;
      } while (iVar8 != iVar7);
    }
    return pIVar2;
  }
  return (Image *)**(undefined4 **)(puVar28 + 0x2033d8);
}



int TrimImage(int param_1,undefined4 param_2)

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  undefined4 uVar7;
  double *pdVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  int iVar12;
  float *pfVar13;
  uint uVar14;
  double *pdVar15;
  double *pdVar16;
  double *pdVar17;
  float *pfVar18;
  int iVar19;
  int iVar20;
  int iVar21;
  int iVar22;
  int iVar23;
  int *piVar24;
  int iVar25;
  undefined *puVar26;
  code *pcVar27;
  double *pdVar28;
  undefined4 uVar29;
  double dVar30;
  double dVar31;
  double dVar32;
  ulonglong uVar33;
  undefined8 uVar34;
  int iVar35;
  int iStack_4e8;
  int iStack_4e4;
  undefined8 uStack_4a0;
  undefined8 uStack_2a0;
  int iStack_9c;
  int iStack_98;
  int iStack_94;
  undefined4 uStack_90;
  int local_38;
  int local_34;
  int local_30;
  int local_2c;
  int local_24;
  int local_20;
  int local_1c;
  int local_18;
  double *local_14;
  
  local_14 = *(double **)PTR___stack_chk_guard_003fa248;
  if (param_1 == 0) {
    iVar1 = (*(code *)PTR___assert_fail_003fa620)
                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4
                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);
    return iVar1;
  }
  if (*(int *)(param_1 + 0x336c) != -0x54535255) {
    iVar1 = (*(code *)PTR___assert_fail_003fa620)
                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4
                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);
    return iVar1;
  }
  if (*(int *)(param_1 + 0x3350) != 0) {
    (*(code *)PTR_LogMagickEvent_003fa1f8)
              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,
               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);
  }
  (*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2);
  local_24 = local_38;
  local_20 = local_34;
  local_1c = local_30;
  local_18 = local_2c;
  if ((local_38 == 0) || (local_34 == 0)) {
    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);
    if (iVar1 != 0) {
      *(undefined4 *)(iVar1 + 0x90) = 4;
      *(undefined4 *)(iVar1 + 0xd4) = 0;
      *(undefined4 *)(iVar1 + 0xd0) = 0;
      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);
      uVar2 = *(undefined4 *)(param_1 + 0x22c);
      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);
      *(undefined4 *)(iVar1 + 0x22c) = uVar2;
      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;
      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;
    }
  }
  else {
    local_1c = local_30 + *(int *)(param_1 + 0x230);
    local_18 = local_2c + *(int *)(param_1 + 0x234);
    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);
    if (iVar1 != 0) {
      (*(code *)PTR_FUN_003f9ba0)
                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);
    }
  }
  if (local_14 == *(double **)PTR___stack_chk_guard_003fa248) {
    return iVar1;
  }
  pdVar15 = local_14;
  puVar26 = PTR___stack_chk_fail_003fa07c;
  (*(code *)PTR___stack_chk_fail_003fa07c)();
  iStack_9c = **(int **)(puVar26 + 0x2033d8);
  pdVar28 = *(double **)(pdVar15 + 2);
  iStack_4e4 = *(int *)((int)pdVar28 + 0x1c);
  iStack_98 = param_1;
  iStack_94 = iVar1;
  uStack_90 = param_2;
  iVar1 = (**(code **)(puVar26 + 0x203ab4))();
  iVar3 = (**(code **)(puVar26 + 0x2036b0))();
  if (iVar1 == 0) {
    trap(7);
  }
  iVar35 = iStack_4e4 / iVar1;
  iStack_4e4 = iStack_4e4 % iVar1;
  if (iVar3 < iStack_4e4) {
    iVar35 = iVar35 + 1;
    iStack_4e4 = 0;
  }
  pdVar16 = (double *)(iVar35 * iVar3);
  iStack_4e4 = (int)pdVar16 + iStack_4e4;
  iVar35 = iVar35 + iStack_4e4;
  if (iStack_4e4 < iVar35) {
    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);
    uVar2 = *(undefined4 *)(pdVar15 + 1);
    iVar3 = *(int *)(pdVar15 + 5);
    pdVar8 = *(double **)((int)pdVar15 + 0x24);
    uVar9 = *(undefined4 *)(pdVar15 + 4);
    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);
    dVar32 = *pdVar15;
    pdVar17 = *(double **)(pdVar15 + 3);
    uVar11 = *(uint *)((int)pdVar15 + 0x14);
    iVar1 = *(int *)(puVar26 + 0x202a88);
    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);
    pdVar16 = pdVar17;
    do {
      if (*(int *)((int)pdVar15 + 0x2c) != 0) {
        iVar4 = (**(code **)(puVar26 + 0x203804))
                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),
                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);
        pdVar16 = pdVar8;
        iVar5 = (**(code **)(puVar26 + 0x202df8))
                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);
        if ((iVar4 == 0) || (iVar5 == 0)) {
          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;
        }
        else {
          iVar23 = *(int *)(pdVar28 + 0x58);
          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *
                   iVar23;
          if (0 < iVar23) {
            iVar21 = 0;
            iVar20 = 0;
            do {
              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);
              iVar6 = iVar19 * 0xc;
              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&
                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {
                if ((uVar14 & 1) == 0) {
                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;
                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;
                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;
                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;
                  if (0 < (int)pdVar17) {
                    pdVar16 = (double *)0x0;
                    iVar6 = iVar4;
                    do {
                      pfVar13 = (float *)(iVar6 + iVar20 * 4);
                      if (0 < (int)uVar11) {
                        dVar31 = (double)(&uStack_2a0)[iVar19];
                        uVar14 = 0;
                        do {
                          if (uVar11 - 1 == uVar14) {
                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13
                            ;
                          }
                          dVar31 = dVar31 + (double)*pfVar13;
                          uVar14 = uVar14 + 1;
                          pfVar13 = pfVar13 + iVar23;
                        } while (uVar11 != uVar14);
                        iVar6 = iVar6 + uVar11 * iVar23 * 4;
                        (&uStack_2a0)[iVar19] = dVar31;
                      }
                      pdVar16 = (double *)((int)pdVar16 + 1);
                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;
                    } while (pdVar16 != pdVar17);
                  }
                }
                else {
                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;
                  if (*(int *)(iVar6 + 4) != 0) {
                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =
                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);
                  }
                }
              }
              iVar20 = iVar20 + 1;
              iVar23 = *(int *)(pdVar28 + 0x58);
              iVar21 = iVar21 + 0xc;
            } while (iVar20 < iVar23);
          }
          if (0 < *(int *)(pdVar28 + 3)) {
            iStack_4e8 = 0;
            uVar34 = 0;
            do {
              iVar23 = *(int *)(pdVar28 + 0x58);
              if (0 < iVar23) {
                iVar20 = iVar4 + iVar22 * 4;
                iVar6 = 0;
                iVar21 = 0;
                do {
                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);
                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {
                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;
                    if (*(uint *)(iVar25 + 4) != 0) {
                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {
                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];
                        (&uStack_2a0)[iVar19] = dVar31;
                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;
                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;
                        if (0 < (int)pdVar17) {
                          iVar12 = (uVar11 - 1) * 4 * iVar23;
                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;
                          pfVar18 = (float *)(iVar4 + iVar21 * 4);
                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);
                          dVar30 = 0.0;
                          pdVar16 = (double *)0x0;
                          do {
                            dVar30 = dVar30 + (double)*pfVar18;
                            dVar31 = dVar31 + (double)*pfVar13;
                            pdVar16 = (double *)((int)pdVar16 + 1);
                            pfVar18 = (float *)((int)pfVar18 + iVar23);
                            pfVar13 = (float *)((int)pfVar13 + iVar23);
                          } while (pdVar16 != pdVar17);
                          (&uStack_4a0)[iVar19] = dVar30;
                          (&uStack_2a0)[iVar19] = dVar31;
                        }
                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);
                        uVar29 = (undefined4)uVar34;
                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=
                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {
                          iVar23 = *(int *)(iVar25 + 8);
                        }
                        else {
                          uVar29 = (undefined4)uVar33;
                          iVar23 = *(int *)(iVar25 + 8);
                        }
                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;
                      }
                      else {
                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =
                             *(undefined4 *)(iVar20 + iVar21 * 4);
                      }
                    }
                  }
                  iVar21 = iVar21 + 1;
                  iVar23 = *(int *)(pdVar28 + 0x58);
                  iVar6 = iVar6 + 0xc;
                } while (iVar21 < iVar23);
              }
              iVar4 = iVar4 + iVar23 * 4;
              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;
              iStack_4e8 = iStack_4e8 + 1;
            } while (iStack_4e8 < *(int *)(pdVar28 + 3));
          }
          pdVar16 = pdVar8;
          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);
          if (iVar4 == 0) {
            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;
          }
          if (*(int *)(pdVar28 + 0x65) != 0) {
            piVar24 = *(int **)(pdVar15 + 6);
            (**(code **)(puVar26 + 0x20348c))();
            uVar14 = piVar24[1] + 1;
            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;
            piVar24[1] = uVar14;
            (**(code **)(puVar26 + 0x2035e0))();
            pdVar16 = pdVar28;
            iVar4 = (**(code **)(puVar26 + 0x202e5c))
                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),
                               (*(undefined4 **)(pdVar15 + 6))[1],0,
                               *(undefined4 *)((int)pdVar28 + 0x1c));
            if (iVar4 == 0) {
              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;
            }
          }
        }
      }
      iStack_4e4 = iStack_4e4 + 1;
    } while (iVar35 != iStack_4e4);
  }
  if (iStack_9c != **(int **)(puVar26 + 0x2033d8)) {
    pcVar27 = *(code **)(puVar26 + 0x20320c);
    (*pcVar27)();
    iVar35 = *(int *)(pdVar16 + 1);
    iVar4 = *(int *)(iVar35 + 0x1c);
    iVar1 = (**(code **)(pcVar27 + 0x203418))();
    iVar3 = (**(code **)(pcVar27 + 0x203014))();
    if (iVar1 == 0) {
      trap(7);
    }
    iVar5 = iVar4 / iVar1;
    iVar4 = iVar4 % iVar1;
    if (iVar3 < iVar4) {
      iVar5 = iVar5 + 1;
      iVar4 = 0;
    }
    iVar4 = iVar5 * iVar3 + iVar4;
    iVar5 = iVar5 + iVar4;
    iVar1 = *(int *)(pcVar27 + 0x2023d4);
    if (iVar4 < iVar5) {
      uVar7 = *(undefined4 *)(pdVar16 + 2);
      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);
      dVar32 = *pdVar16;
      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);
      iVar3 = *(int *)(pcVar27 + 0x2023ec);
      do {
        iVar1 = 1;
        if (*(int *)((int)pdVar16 + 0x14) != 0) {
          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))
                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);
          if (pfVar13 == (float *)0x0) {
            *(undefined4 *)((int)pdVar16 + 0x14) = 0;
            iVar1 = 0;
          }
          else {
            iVar1 = 0;
            if (0 < *(int *)(iVar35 + 0x18)) {
              do {
                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);
                iVar22 = *(int *)(iVar35 + 0x2c0);
                if (0 < iVar22) {
                  iVar20 = 0;
                  iVar23 = 0;
                  pfVar18 = pfVar13;
                  do {
                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +
                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)
                    {
                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {
                        dVar31 = (double)*pfVar18;
                      }
                      if (dVar31 <= dVar32) {
                        *pfVar18 = 0.0;
                      }
                      else {
                        *pfVar18 = (float)uVar33;
                      }
                    }
                    iVar23 = iVar23 + 1;
                    iVar22 = *(int *)(iVar35 + 0x2c0);
                    iVar20 = iVar20 + 0xc;
                    pfVar18 = pfVar18 + 1;
                  } while (iVar23 < iVar22);
                }
                pfVar13 = pfVar13 + iVar22;
                iVar1 = iVar1 + 1;
              } while (iVar1 < *(int *)(iVar35 + 0x18));
            }
            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);
            if (iVar1 == 0) {
              *(undefined4 *)((int)pdVar16 + 0x14) = 0;
            }
            iVar1 = *(int *)(iVar35 + 0x328);
            if (iVar1 != 0) {
              piVar24 = *(int **)(pdVar16 + 3);
              (**(code **)(pcVar27 + 0x202df0))();
              uVar11 = piVar24[1] + 1;
              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;
              piVar24[1] = uVar11;
              (**(code **)(pcVar27 + 0x202f44))();
              piVar24 = *(int **)(pdVar16 + 3);
              iVar1 = *piVar24;
              uVar11 = piVar24[1];
              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;
              piVar24[1] = uVar11 + 1;
              iVar1 = (**(code **)(pcVar27 + 0x2027c0))
                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))
              ;
              if (iVar1 == 0) {
                *(undefined4 *)((int)pdVar16 + 0x14) = 0;
              }
            }
          }
        }
        iVar4 = iVar4 + 1;
      } while (iVar5 != iVar4);
    }
    return iVar1;
  }
  return **(int **)(puVar26 + 0x2033d8);
}


lui gp,0x21
addiu gp,gp,-0x537c
addu gp,gp,t9
addiu sp,sp,-0x58
sw ra,0x54(sp)
sw s2,0x50(sp)
sw s1,0x4c(sp)
sw s0,0x48(sp)
sw gp,0x18(sp)
lw v0,-0x7668(gp)
lw v0,0x0(v0)
sw v0,0x44(sp)
beq a0,zero,0x001f6d6c
_lui v0,0xabac
or s0,a0,zero
lw v1,0x336c(a0)
ori v0,v0,0xadab
bne v1,v0,0x001f6d94
_or s2,a1,zero
lw v0,0x3350(a0)
bne v0,zero,0x001f6dbc
_addiu v0,a0,0x340
or a2,s2,zero
or a1,s0,zero
addiu a0,sp,0x20
lw t9,-0x6f10(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw v0,0x20(sp)
sw v0,0x34(sp)
lw v1,0x24(sp)
sw v1,0x38(sp)
lw v1,0x28(sp)
sw v1,0x3c(sp)
lw v1,0x2c(sp)
beq v0,zero,0x001f6cd0
_sw v1,0x40(sp)
lw v0,0x38(sp)
bne v0,zero,0x001f6dfc
_lw v0,0x3c(sp)
sw s2,0x10(sp)
li a3,0x1
li a2,0x1
li a1,0x1
or a0,s0,zero
lw t9,-0x7068(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x001f6d40
_or s1,v0,zero
li v0,0x4
sw v0,0x90(s1)
sw zero,0xd4(s1)
sw zero,0xd0(s1)
or a1,s2,zero
or a0,s1,zero
lw t9,-0x7a08(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw v1,0x228(s0)
lw v0,0x22c(s0)
sw v1,0x228(s1)
sw v0,0x22c(s1)
li v0,-0x1
sw v0,0x230(s1)
sw v0,0x234(s1)
or v0,s1,zero
lw a0,0x44(sp)
lw v1,-0x7668(gp)
lw v1,0x0(v1)
bne a0,v1,0x001f6e64
_lw ra,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x58
lw a3,-0x7fb8(gp)
addiu a3,a3,0xca8
li a2,0x96e
lw a1,-0x7fb8(gp)
addiu a1,a1,0xbd4
lw a0,-0x7fcc(gp)
addiu a0,a0,-0x7b0
lw t9,-0x7290(gp)
jalr t9
_nop
lw a3,-0x7fb8(gp)
addiu a3,a3,0xca8
li a2,0x96f
lw a1,-0x7fb8(gp)
addiu a1,a1,0xbd4
lw a0,-0x7fcc(gp)
addiu a0,a0,-0x784
lw t9,-0x7290(gp)
jalr t9
_nop
sw v0,0x14(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x2f6c
sw v0,0x10(sp)
li a3,0x971
lw a2,-0x7fb8(gp)
addiu a2,a2,0xc9c
lw a1,-0x7fb8(gp)
addiu a1,a1,0xbd4
ori a0,zero,0x8000
lw t9,-0x76b8(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x001f6c88
_or a2,s2,zero
lw v1,0x230(s0)
addu v0,v0,v1
sw v0,0x3c(sp)
lw v1,0x234(s0)
lw v0,0x40(sp)
addu v0,v0,v1
sw v0,0x40(sp)
or a2,s2,zero
addiu a1,sp,0x34
or a0,s0,zero
lw t9,-0x77e0(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x001f6d40
_or s1,v0,zero
addiu a3,sp,0x34
lw a2,0x1c(s0)
lw a1,0x18(s0)
or a0,v0,zero
lw t9,-0x7d10(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x001f6d44
_or v0,s1,zero
lw t9,-0x7834(gp)
jalr t9
_nop
(translation_unit "int TrimImage(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  double *pdVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  uint uVar14;\n  double *pdVar15;\n  double *pdVar16;\n  double *pdVar17;\n  float *pfVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  double *pdVar28;\n  undefined4 uVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  ulonglong uVar33;\n  undefined8 uVar34;\n  int iVar35;\n  int iStack_4e8;\n  int iStack_4e4;\n  undefined8 uStack_4a0;\n  undefined8 uStack_2a0;\n  int iStack_9c;\n  int iStack_98;\n  int iStack_94;\n  undefined4 uStack_90;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_24;\n  int local_20;\n  int local_1c;\n  int local_18;\n  double *local_14;\n  \n  local_14 = *(double **)PTR___stack_chk_guard_003fa248;\n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x336c) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x3350) != 0) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }\n  (*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2);\n  local_24 = local_38;\n  local_20 = local_34;\n  local_1c = local_30;\n  local_18 = local_2c;\n  if ((local_38 == 0) || (local_34 == 0)) {\n    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);\n    if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }\n  }\n  else {\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }\n  if (local_14 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return iVar1;\n  }\n  pdVar15 = local_14;\n  puVar26 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  iStack_9c = **(int **)(puVar26 + 0x2033d8);\n  pdVar28 = *(double **)(pdVar15 + 2);\n  iStack_4e4 = *(int *)((int)pdVar28 + 0x1c);\n  iStack_98 = param_1;\n  iStack_94 = iVar1;\n  uStack_90 = param_2;\n  iVar1 = (**(code **)(puVar26 + 0x203ab4))();\n  iVar3 = (**(code **)(puVar26 + 0x2036b0))();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar35 = iStack_4e4 / iVar1;\n  iStack_4e4 = iStack_4e4 % iVar1;\n  if (iVar3 < iStack_4e4) {\n    iVar35 = iVar35 + 1;\n    iStack_4e4 = 0;\n  }\n  pdVar16 = (double *)(iVar35 * iVar3);\n  iStack_4e4 = (int)pdVar16 + iStack_4e4;\n  iVar35 = iVar35 + iStack_4e4;\n  if (iStack_4e4 < iVar35) {\n    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);\n    uVar2 = *(undefined4 *)(pdVar15 + 1);\n    iVar3 = *(int *)(pdVar15 + 5);\n    pdVar8 = *(double **)((int)pdVar15 + 0x24);\n    uVar9 = *(undefined4 *)(pdVar15 + 4);\n    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);\n    dVar32 = *pdVar15;\n    pdVar17 = *(double **)(pdVar15 + 3);\n    uVar11 = *(uint *)((int)pdVar15 + 0x14);\n    iVar1 = *(int *)(puVar26 + 0x202a88);\n    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);\n    pdVar16 = pdVar17;\n    do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);\n  }\n  if (iStack_9c != **(int **)(puVar26 + 0x2033d8)) {\n    pcVar27 = *(code **)(puVar26 + 0x20320c);\n    (*pcVar27)();\n    iVar35 = *(int *)(pdVar16 + 1);\n    iVar4 = *(int *)(iVar35 + 0x1c);\n    iVar1 = (**(code **)(pcVar27 + 0x203418))();\n    iVar3 = (**(code **)(pcVar27 + 0x203014))();\n    if (iVar1 == 0) {\n      trap(7);\n    }\n    iVar5 = iVar4 / iVar1;\n    iVar4 = iVar4 % iVar1;\n    if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }\n    iVar4 = iVar5 * iVar3 + iVar4;\n    iVar5 = iVar5 + iVar4;\n    iVar1 = *(int *)(pcVar27 + 0x2023d4);\n    if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }\n    return iVar1;\n  }\n  return **(int **)(puVar26 + 0x2033d8);\n}\n\n" (function_definition "int TrimImage(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  double *pdVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  uint uVar14;\n  double *pdVar15;\n  double *pdVar16;\n  double *pdVar17;\n  float *pfVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  double *pdVar28;\n  undefined4 uVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  ulonglong uVar33;\n  undefined8 uVar34;\n  int iVar35;\n  int iStack_4e8;\n  int iStack_4e4;\n  undefined8 uStack_4a0;\n  undefined8 uStack_2a0;\n  int iStack_9c;\n  int iStack_98;\n  int iStack_94;\n  undefined4 uStack_90;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_24;\n  int local_20;\n  int local_1c;\n  int local_18;\n  double *local_14;\n  \n  local_14 = *(double **)PTR___stack_chk_guard_003fa248;\n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x336c) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x3350) != 0) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }\n  (*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2);\n  local_24 = local_38;\n  local_20 = local_34;\n  local_1c = local_30;\n  local_18 = local_2c;\n  if ((local_38 == 0) || (local_34 == 0)) {\n    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);\n    if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }\n  }\n  else {\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }\n  if (local_14 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return iVar1;\n  }\n  pdVar15 = local_14;\n  puVar26 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  iStack_9c = **(int **)(puVar26 + 0x2033d8);\n  pdVar28 = *(double **)(pdVar15 + 2);\n  iStack_4e4 = *(int *)((int)pdVar28 + 0x1c);\n  iStack_98 = param_1;\n  iStack_94 = iVar1;\n  uStack_90 = param_2;\n  iVar1 = (**(code **)(puVar26 + 0x203ab4))();\n  iVar3 = (**(code **)(puVar26 + 0x2036b0))();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar35 = iStack_4e4 / iVar1;\n  iStack_4e4 = iStack_4e4 % iVar1;\n  if (iVar3 < iStack_4e4) {\n    iVar35 = iVar35 + 1;\n    iStack_4e4 = 0;\n  }\n  pdVar16 = (double *)(iVar35 * iVar3);\n  iStack_4e4 = (int)pdVar16 + iStack_4e4;\n  iVar35 = iVar35 + iStack_4e4;\n  if (iStack_4e4 < iVar35) {\n    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);\n    uVar2 = *(undefined4 *)(pdVar15 + 1);\n    iVar3 = *(int *)(pdVar15 + 5);\n    pdVar8 = *(double **)((int)pdVar15 + 0x24);\n    uVar9 = *(undefined4 *)(pdVar15 + 4);\n    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);\n    dVar32 = *pdVar15;\n    pdVar17 = *(double **)(pdVar15 + 3);\n    uVar11 = *(uint *)((int)pdVar15 + 0x14);\n    iVar1 = *(int *)(puVar26 + 0x202a88);\n    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);\n    pdVar16 = pdVar17;\n    do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);\n  }\n  if (iStack_9c != **(int **)(puVar26 + 0x2033d8)) {\n    pcVar27 = *(code **)(puVar26 + 0x20320c);\n    (*pcVar27)();\n    iVar35 = *(int *)(pdVar16 + 1);\n    iVar4 = *(int *)(iVar35 + 0x1c);\n    iVar1 = (**(code **)(pcVar27 + 0x203418))();\n    iVar3 = (**(code **)(pcVar27 + 0x203014))();\n    if (iVar1 == 0) {\n      trap(7);\n    }\n    iVar5 = iVar4 / iVar1;\n    iVar4 = iVar4 % iVar1;\n    if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }\n    iVar4 = iVar5 * iVar3 + iVar4;\n    iVar5 = iVar5 + iVar4;\n    iVar1 = *(int *)(pcVar27 + 0x2023d4);\n    if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }\n    return iVar1;\n  }\n  return **(int **)(puVar26 + 0x2033d8);\n}" primitive_type (function_declarator "TrimImage(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  double *pdVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  uint uVar14;\n  double *pdVar15;\n  double *pdVar16;\n  double *pdVar17;\n  float *pfVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  double *pdVar28;\n  undefined4 uVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  ulonglong uVar33;\n  undefined8 uVar34;\n  int iVar35;\n  int iStack_4e8;\n  int iStack_4e4;\n  undefined8 uStack_4a0;\n  undefined8 uStack_2a0;\n  int iStack_9c;\n  int iStack_98;\n  int iStack_94;\n  undefined4 uStack_90;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_24;\n  int local_20;\n  int local_1c;\n  int local_18;\n  double *local_14;\n  \n  local_14 = *(double **)PTR___stack_chk_guard_003fa248;\n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x336c) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x3350) != 0) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }\n  (*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2);\n  local_24 = local_38;\n  local_20 = local_34;\n  local_1c = local_30;\n  local_18 = local_2c;\n  if ((local_38 == 0) || (local_34 == 0)) {\n    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);\n    if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }\n  }\n  else {\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }\n  if (local_14 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return iVar1;\n  }\n  pdVar15 = local_14;\n  puVar26 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  iStack_9c = **(int **)(puVar26 + 0x2033d8);\n  pdVar28 = *(double **)(pdVar15 + 2);\n  iStack_4e4 = *(int *)((int)pdVar28 + 0x1c);\n  iStack_98 = param_1;\n  iStack_94 = iVar1;\n  uStack_90 = param_2;\n  iVar1 = (**(code **)(puVar26 + 0x203ab4))();\n  iVar3 = (**(code **)(puVar26 + 0x2036b0))();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar35 = iStack_4e4 / iVar1;\n  iStack_4e4 = iStack_4e4 % iVar1;\n  if (iVar3 < iStack_4e4) {\n    iVar35 = iVar35 + 1;\n    iStack_4e4 = 0;\n  }\n  pdVar16 = (double *)(iVar35 * iVar3);\n  iStack_4e4 = (int)pdVar16 + iStack_4e4;\n  iVar35 = iVar35 + iStack_4e4;\n  if (iStack_4e4 < iVar35) {\n    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);\n    uVar2 = *(undefined4 *)(pdVar15 + 1);\n    iVar3 = *(int *)(pdVar15 + 5);\n    pdVar8 = *(double **)((int)pdVar15 + 0x24);\n    uVar9 = *(undefined4 *)(pdVar15 + 4);\n    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);\n    dVar32 = *pdVar15;\n    pdVar17 = *(double **)(pdVar15 + 3);\n    uVar11 = *(uint *)((int)pdVar15 + 0x14);\n    iVar1 = *(int *)(puVar26 + 0x202a88);\n    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);\n    pdVar16 = pdVar17;\n    do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);\n  }\n  if (iStack_9c != **(int **)(puVar26 + 0x2033d8)) {\n    pcVar27 = *(code **)(puVar26 + 0x20320c);\n    (*pcVar27)();\n    iVar35 = *(int *)(pdVar16 + 1);\n    iVar4 = *(int *)(iVar35 + 0x1c);\n    iVar1 = (**(code **)(pcVar27 + 0x203418))();\n    iVar3 = (**(code **)(pcVar27 + 0x203014))();\n    if (iVar1 == 0) {\n      trap(7);\n    }\n    iVar5 = iVar4 / iVar1;\n    iVar4 = iVar4 % iVar1;\n    if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }\n    iVar4 = iVar5 * iVar3 + iVar4;\n    iVar5 = iVar5 + iVar4;\n    iVar1 = *(int *)(pcVar27 + 0x2023d4);\n    if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }\n    return iVar1;\n  }\n  return **(int **)(puVar26 + 0x2033d8);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "double *pdVar8;" primitive_type (pointer_declarator "*pdVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "float *pfVar13;" primitive_type (pointer_declarator "*pfVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "double *pdVar15;" primitive_type (pointer_declarator "*pdVar15" * identifier) ;) (declaration "double *pdVar16;" primitive_type (pointer_declarator "*pdVar16" * identifier) ;) (declaration "double *pdVar17;" primitive_type (pointer_declarator "*pdVar17" * identifier) ;) (declaration "float *pfVar18;" primitive_type (pointer_declarator "*pfVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "double *pdVar28;" primitive_type (pointer_declarator "*pdVar28" * identifier) ;) (declaration "undefined4 uVar29;" type_identifier identifier ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "double dVar31;" primitive_type identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "ulonglong uVar33;" type_identifier identifier ;) (declaration "undefined8 uVar34;" type_identifier identifier ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "int iStack_4e8;" primitive_type identifier ;) (declaration "int iStack_4e4;" primitive_type identifier ;) (declaration "undefined8 uStack_4a0;" type_identifier identifier ;) (declaration "undefined8 uStack_2a0;" type_identifier identifier ;) (declaration "int iStack_9c;" primitive_type identifier ;) (declaration "int iStack_98;" primitive_type identifier ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "undefined4 uStack_90;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (declaration "int local_18;" primitive_type identifier ;) (declaration "double *local_14;" primitive_type (pointer_declarator "*local_14" * identifier) ;) (expression_statement "local_14 = *(double **)PTR___stack_chk_guard_003fa248;" (assignment_expression "local_14 = *(double **)PTR___stack_chk_guard_003fa248" identifier = (pointer_expression "*(double **)PTR___stack_chk_guard_003fa248" * (cast_expression "(double **)PTR___stack_chk_guard_003fa248" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" identifier = (call_expression "(*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" ( (binary_expression "PTR_UINT_003f98e4 + -0x7b0" identifier + number_literal) , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (if_statement "if (*(int *)(param_1 + 0x336c) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x336c)" * (cast_expression "(int *)(param_1 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x336c)" ( (binary_expression "param_1 + 0x336c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" identifier = (call_expression "(*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" ( (binary_expression "PTR_UINT_003f98e4 + -0x784" identifier + number_literal) , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (if_statement "if (*(int *)(param_1 + 0x3350) != 0) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3350) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3350) != 0" (pointer_expression "*(int *)(param_1 + 0x3350)" * (cast_expression "(int *)(param_1 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3350)" ( (binary_expression "param_1 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);" (call_expression "(*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003fa1f8)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003fa1f8" * (cast_expression "(code *)PTR_LogMagickEvent_003fa1f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971)" ( number_literal , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4" identifier + number_literal) , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "(*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2);" (call_expression "(*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2)" (parenthesized_expression "(*(code *)PTR_GetImageBoundingBox_003fa9a0)" ( (pointer_expression "*(code *)PTR_GetImageBoundingBox_003fa9a0" * (cast_expression "(code *)PTR_GetImageBoundingBox_003fa9a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_38,param_1,param_2)" ( (pointer_expression "&local_38" & identifier) , identifier , identifier ))) ;) (expression_statement "local_24 = local_38;" (assignment_expression "local_24 = local_38" identifier = identifier) ;) (expression_statement "local_20 = local_34;" (assignment_expression "local_20 = local_34" identifier = identifier) ;) (expression_statement "local_1c = local_30;" (assignment_expression "local_1c = local_30" identifier = identifier) ;) (expression_statement "local_18 = local_2c;" (assignment_expression "local_18 = local_2c" identifier = identifier) ;) (if_statement "if ((local_38 == 0) || (local_34 == 0)) {\n    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);\n    if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }\n  }\n  else {\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }" if (parenthesized_expression "((local_38 == 0) || (local_34 == 0))" ( (binary_expression "(local_38 == 0) || (local_34 == 0)" (parenthesized_expression "(local_38 == 0)" ( (binary_expression "local_38 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);\n    if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }\n  }" { (expression_statement "iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);" (assignment_expression "iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1)" identifier = (call_expression "(*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1)" (parenthesized_expression "(*(code *)PTR_CloneImage_003fa848)" ( (pointer_expression "*(code *)PTR_CloneImage_003fa848" * (cast_expression "(code *)PTR_CloneImage_003fa848" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,1,1)" ( identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }" { (expression_statement "*(undefined4 *)(iVar1 + 0x90) = 4;" (assignment_expression "*(undefined4 *)(iVar1 + 0x90) = 4" (pointer_expression "*(undefined4 *)(iVar1 + 0x90)" * (cast_expression "(undefined4 *)(iVar1 + 0x90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x90)" ( (binary_expression "iVar1 + 0x90" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0xd4) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xd4) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xd4)" * (cast_expression "(undefined4 *)(iVar1 + 0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xd4)" ( (binary_expression "iVar1 + 0xd4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0xd0) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xd0) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xd0)" * (cast_expression "(undefined4 *)(iVar1 + 0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xd0)" ( (binary_expression "iVar1 + 0xd0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);" (call_expression "(*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2)" (parenthesized_expression "(*(code *)PTR_SetImageBackgroundColor_003f9ea8)" ( (pointer_expression "*(code *)PTR_SetImageBackgroundColor_003f9ea8" * (cast_expression "(code *)PTR_SetImageBackgroundColor_003f9ea8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1,param_2)" ( identifier , identifier ))) ;) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0x22c);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0x22c)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x22c)" * (cast_expression "(undefined4 *)(param_1 + 0x22c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22c)" ( (binary_expression "param_1 + 0x22c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);" (assignment_expression "*(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228)" (pointer_expression "*(undefined4 *)(iVar1 + 0x228)" * (cast_expression "(undefined4 *)(iVar1 + 0x228)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x228)" ( (binary_expression "iVar1 + 0x228" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x228)" * (cast_expression "(undefined4 *)(param_1 + 0x228)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x228)" ( (binary_expression "param_1 + 0x228" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x22c) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + 0x22c) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + 0x22c)" * (cast_expression "(undefined4 *)(iVar1 + 0x22c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x22c)" ( (binary_expression "iVar1 + 0x22c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x230) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar1 + 0x230) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar1 + 0x230)" * (cast_expression "(undefined4 *)(iVar1 + 0x230)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x230)" ( (binary_expression "iVar1 + 0x230" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x234) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar1 + 0x234) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar1 + 0x234)" * (cast_expression "(undefined4 *)(iVar1 + 0x234)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x234)" ( (binary_expression "iVar1 + 0x234" identifier + number_literal) )))) = number_literal) ;) })) }) (else_clause "else {\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }" else (compound_statement "{\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }" { (expression_statement "local_1c = local_30 + *(int *)(param_1 + 0x230);" (assignment_expression "local_1c = local_30 + *(int *)(param_1 + 0x230)" identifier = (binary_expression "local_30 + *(int *)(param_1 + 0x230)" identifier + (pointer_expression "*(int *)(param_1 + 0x230)" * (cast_expression "(int *)(param_1 + 0x230)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x230)" ( (binary_expression "param_1 + 0x230" identifier + number_literal) )))))) ;) (expression_statement "local_18 = local_2c + *(int *)(param_1 + 0x234);" (assignment_expression "local_18 = local_2c + *(int *)(param_1 + 0x234)" identifier = (binary_expression "local_2c + *(int *)(param_1 + 0x234)" identifier + (pointer_expression "*(int *)(param_1 + 0x234)" * (cast_expression "(int *)(param_1 + 0x234)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x234)" ( (binary_expression "param_1 + 0x234" identifier + number_literal) )))))) ;) (expression_statement "iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);" (assignment_expression "iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2)" identifier = (call_expression "(*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2)" (parenthesized_expression "(*(code *)PTR_CropImage_003fa0d0)" ( (pointer_expression "*(code *)PTR_CropImage_003fa0d0" * (cast_expression "(code *)PTR_CropImage_003fa0d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,&local_24,param_2)" ( identifier , (pointer_expression "&local_24" & identifier) , identifier )))) ;) (if_statement "if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }" { (expression_statement "(*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);" (call_expression "(*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24)" (parenthesized_expression "(*(code *)PTR_FUN_003f9ba0)" ( (pointer_expression "*(code *)PTR_FUN_003f9ba0" * (cast_expression "(code *)PTR_FUN_003f9ba0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24)" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" * (cast_expression "(undefined4 *)(param_1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) , (pointer_expression "&local_24" & identifier) ))) ;) })) }))) (if_statement "if (local_14 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return iVar1;\n  }" if (parenthesized_expression "(local_14 == *(double **)PTR___stack_chk_guard_003fa248)" ( (binary_expression "local_14 == *(double **)PTR___stack_chk_guard_003fa248" identifier == (pointer_expression "*(double **)PTR___stack_chk_guard_003fa248" * (cast_expression "(double **)PTR___stack_chk_guard_003fa248" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar1;\n  }" { (return_statement "return iVar1;" return identifier ;) })) (expression_statement "pdVar15 = local_14;" (assignment_expression "pdVar15 = local_14" identifier = identifier) ;) (expression_statement "puVar26 = PTR___stack_chk_fail_003fa07c;" (assignment_expression "puVar26 = PTR___stack_chk_fail_003fa07c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003fa07c)();" (call_expression "(*(code *)PTR___stack_chk_fail_003fa07c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003fa07c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003fa07c" * (cast_expression "(code *)PTR___stack_chk_fail_003fa07c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_9c = **(int **)(puVar26 + 0x2033d8);" (assignment_expression "iStack_9c = **(int **)(puVar26 + 0x2033d8)" identifier = (pointer_expression "**(int **)(puVar26 + 0x2033d8)" * (pointer_expression "*(int **)(puVar26 + 0x2033d8)" * (cast_expression "(int **)(puVar26 + 0x2033d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2033d8)" ( (binary_expression "puVar26 + 0x2033d8" identifier + number_literal) )))))) ;) (expression_statement "pdVar28 = *(double **)(pdVar15 + 2);" (assignment_expression "pdVar28 = *(double **)(pdVar15 + 2)" identifier = (pointer_expression "*(double **)(pdVar15 + 2)" * (cast_expression "(double **)(pdVar15 + 2)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar15 + 2)" ( (binary_expression "pdVar15 + 2" identifier + number_literal) ))))) ;) (expression_statement "iStack_4e4 = *(int *)((int)pdVar28 + 0x1c);" (assignment_expression "iStack_4e4 = *(int *)((int)pdVar28 + 0x1c)" identifier = (pointer_expression "*(int *)((int)pdVar28 + 0x1c)" * (cast_expression "(int *)((int)pdVar28 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar28 + 0x1c)" ( (binary_expression "(int)pdVar28 + 0x1c" (cast_expression "(int)pdVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iStack_98 = param_1;" (assignment_expression "iStack_98 = param_1" identifier = identifier) ;) (expression_statement "iStack_94 = iVar1;" (assignment_expression "iStack_94 = iVar1" identifier = identifier) ;) (expression_statement "uStack_90 = param_2;" (assignment_expression "uStack_90 = param_2" identifier = identifier) ;) (expression_statement "iVar1 = (**(code **)(puVar26 + 0x203ab4))();" (assignment_expression "iVar1 = (**(code **)(puVar26 + 0x203ab4))()" identifier = (call_expression "(**(code **)(puVar26 + 0x203ab4))()" (parenthesized_expression "(**(code **)(puVar26 + 0x203ab4))" ( (pointer_expression "**(code **)(puVar26 + 0x203ab4)" * (pointer_expression "*(code **)(puVar26 + 0x203ab4)" * (cast_expression "(code **)(puVar26 + 0x203ab4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x203ab4)" ( (binary_expression "puVar26 + 0x203ab4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar3 = (**(code **)(puVar26 + 0x2036b0))();" (assignment_expression "iVar3 = (**(code **)(puVar26 + 0x2036b0))()" identifier = (call_expression "(**(code **)(puVar26 + 0x2036b0))()" (parenthesized_expression "(**(code **)(puVar26 + 0x2036b0))" ( (pointer_expression "**(code **)(puVar26 + 0x2036b0)" * (pointer_expression "*(code **)(puVar26 + 0x2036b0)" * (cast_expression "(code **)(puVar26 + 0x2036b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2036b0)" ( (binary_expression "puVar26 + 0x2036b0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar35 = iStack_4e4 / iVar1;" (assignment_expression "iVar35 = iStack_4e4 / iVar1" identifier = (binary_expression "iStack_4e4 / iVar1" identifier / identifier)) ;) (expression_statement "iStack_4e4 = iStack_4e4 % iVar1;" (assignment_expression "iStack_4e4 = iStack_4e4 % iVar1" identifier = (binary_expression "iStack_4e4 % iVar1" identifier % identifier)) ;) (if_statement "if (iVar3 < iStack_4e4) {\n    iVar35 = iVar35 + 1;\n    iStack_4e4 = 0;\n  }" if (parenthesized_expression "(iVar3 < iStack_4e4)" ( (binary_expression "iVar3 < iStack_4e4" identifier < identifier) )) (compound_statement "{\n    iVar35 = iVar35 + 1;\n    iStack_4e4 = 0;\n  }" { (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "iStack_4e4 = 0;" (assignment_expression "iStack_4e4 = 0" identifier = number_literal) ;) })) (expression_statement "pdVar16 = (double *)(iVar35 * iVar3);" (assignment_expression "pdVar16 = (double *)(iVar35 * iVar3)" identifier = (cast_expression "(double *)(iVar35 * iVar3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 * iVar3)" ( (binary_expression "iVar35 * iVar3" identifier * identifier) )))) ;) (expression_statement "iStack_4e4 = (int)pdVar16 + iStack_4e4;" (assignment_expression "iStack_4e4 = (int)pdVar16 + iStack_4e4" identifier = (binary_expression "(int)pdVar16 + iStack_4e4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "iVar35 = iVar35 + iStack_4e4;" (assignment_expression "iVar35 = iVar35 + iStack_4e4" identifier = (binary_expression "iVar35 + iStack_4e4" identifier + identifier)) ;) (if_statement "if (iStack_4e4 < iVar35) {\n    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);\n    uVar2 = *(undefined4 *)(pdVar15 + 1);\n    iVar3 = *(int *)(pdVar15 + 5);\n    pdVar8 = *(double **)((int)pdVar15 + 0x24);\n    uVar9 = *(undefined4 *)(pdVar15 + 4);\n    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);\n    dVar32 = *pdVar15;\n    pdVar17 = *(double **)(pdVar15 + 3);\n    uVar11 = *(uint *)((int)pdVar15 + 0x14);\n    iVar1 = *(int *)(puVar26 + 0x202a88);\n    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);\n    pdVar16 = pdVar17;\n    do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);\n  }" if (parenthesized_expression "(iStack_4e4 < iVar35)" ( (binary_expression "iStack_4e4 < iVar35" identifier < identifier) )) (compound_statement "{\n    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);\n    uVar2 = *(undefined4 *)(pdVar15 + 1);\n    iVar3 = *(int *)(pdVar15 + 5);\n    pdVar8 = *(double **)((int)pdVar15 + 0x24);\n    uVar9 = *(undefined4 *)(pdVar15 + 4);\n    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);\n    dVar32 = *pdVar15;\n    pdVar17 = *(double **)(pdVar15 + 3);\n    uVar11 = *(uint *)((int)pdVar15 + 0x14);\n    iVar1 = *(int *)(puVar26 + 0x202a88);\n    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);\n    pdVar16 = pdVar17;\n    do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);\n  }" { (expression_statement "uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);" (assignment_expression "uVar7 = *(undefined4 *)((int)pdVar15 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar15 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar15 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar15 + 0xc)" ( (binary_expression "(int)pdVar15 + 0xc" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined4 *)(pdVar15 + 1);" (assignment_expression "uVar2 = *(undefined4 *)(pdVar15 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar15 + 1)" * (cast_expression "(undefined4 *)(pdVar15 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar15 + 1)" ( (binary_expression "pdVar15 + 1" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(pdVar15 + 5);" (assignment_expression "iVar3 = *(int *)(pdVar15 + 5)" identifier = (pointer_expression "*(int *)(pdVar15 + 5)" * (cast_expression "(int *)(pdVar15 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar15 + 5)" ( (binary_expression "pdVar15 + 5" identifier + number_literal) ))))) ;) (expression_statement "pdVar8 = *(double **)((int)pdVar15 + 0x24);" (assignment_expression "pdVar8 = *(double **)((int)pdVar15 + 0x24)" identifier = (pointer_expression "*(double **)((int)pdVar15 + 0x24)" * (cast_expression "(double **)((int)pdVar15 + 0x24)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdVar15 + 0x24)" ( (binary_expression "(int)pdVar15 + 0x24" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(pdVar15 + 4);" (assignment_expression "uVar9 = *(undefined4 *)(pdVar15 + 4)" identifier = (pointer_expression "*(undefined4 *)(pdVar15 + 4)" * (cast_expression "(undefined4 *)(pdVar15 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar15 + 4)" ( (binary_expression "pdVar15 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);" (assignment_expression "uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar15 + 0x1c)" * (cast_expression "(undefined4 *)((int)pdVar15 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar15 + 0x1c)" ( (binary_expression "(int)pdVar15 + 0x1c" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar32 = *pdVar15;" (assignment_expression "dVar32 = *pdVar15" identifier = (pointer_expression "*pdVar15" * identifier)) ;) (expression_statement "pdVar17 = *(double **)(pdVar15 + 3);" (assignment_expression "pdVar17 = *(double **)(pdVar15 + 3)" identifier = (pointer_expression "*(double **)(pdVar15 + 3)" * (cast_expression "(double **)(pdVar15 + 3)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar15 + 3)" ( (binary_expression "pdVar15 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(uint *)((int)pdVar15 + 0x14);" (assignment_expression "uVar11 = *(uint *)((int)pdVar15 + 0x14)" identifier = (pointer_expression "*(uint *)((int)pdVar15 + 0x14)" * (cast_expression "(uint *)((int)pdVar15 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar15 + 0x14)" ( (binary_expression "(int)pdVar15 + 0x14" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(puVar26 + 0x202a88);" (assignment_expression "iVar1 = *(int *)(puVar26 + 0x202a88)" identifier = (pointer_expression "*(int *)(puVar26 + 0x202a88)" * (cast_expression "(int *)(puVar26 + 0x202a88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x202a88)" ( (binary_expression "puVar26 + 0x202a88" identifier + number_literal) ))))) ;) (expression_statement "uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);" (assignment_expression "uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8)" identifier = (binary_expression "(ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar26 + 0x202a70) + 0x4aa8)" ( (binary_expression "*(int *)(puVar26 + 0x202a70) + 0x4aa8" (pointer_expression "*(int *)(puVar26 + 0x202a70)" * (cast_expression "(int *)(puVar26 + 0x202a70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x202a70)" ( (binary_expression "puVar26 + 0x202a70" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pdVar16 = pdVar17;" (assignment_expression "pdVar16 = pdVar17" identifier = identifier) ;) (do_statement "do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);" do (compound_statement "{\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    }" { (if_statement "if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)((int)pdVar15 + 0x2c) != 0)" ( (binary_expression "*(int *)((int)pdVar15 + 0x2c) != 0" (pointer_expression "*(int *)((int)pdVar15 + 0x2c)" * (cast_expression "(int *)((int)pdVar15 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar15 + 0x2c)" ( (binary_expression "(int)pdVar15 + 0x2c" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }" { (expression_statement "iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10)" identifier = (call_expression "(**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10)" (parenthesized_expression "(**(code **)(puVar26 + 0x203804))" ( (pointer_expression "**(code **)(puVar26 + 0x203804)" * (pointer_expression "*(code **)(puVar26 + 0x203804)" * (cast_expression "(code **)(puVar26 + 0x203804)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x203804)" ( (binary_expression "puVar26 + 0x203804" identifier + number_literal) ))))) )) (argument_list "(uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10)" ( identifier , (unary_expression "-((int)uVar11 / 2)" - (parenthesized_expression "((int)uVar11 / 2)" ( (binary_expression "(int)uVar11 / 2" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) / number_literal) ))) , (binary_expression "iStack_4e4 - ((uint)pdVar17 >> 1)" identifier - (parenthesized_expression "((uint)pdVar17 >> 1)" ( (binary_expression "(uint)pdVar17 >> 1" (cast_expression "(uint)pdVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "uVar11 + *(int *)(pdVar28 + 3)" identifier + (pointer_expression "*(int *)(pdVar28 + 3)" * (cast_expression "(int *)(pdVar28 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 3)" ( (binary_expression "pdVar28 + 3" identifier + number_literal) ))))) , identifier , identifier )))) ;) (expression_statement "pdVar16 = pdVar8;" (assignment_expression "pdVar16 = pdVar8" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);" (assignment_expression "iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10)" identifier = (call_expression "(**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10)" (parenthesized_expression "(**(code **)(puVar26 + 0x202df8))" ( (pointer_expression "**(code **)(puVar26 + 0x202df8)" * (pointer_expression "*(code **)(puVar26 + 0x202df8)" * (cast_expression "(code **)(puVar26 + 0x202df8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x202df8)" ( (binary_expression "puVar26 + 0x202df8" identifier + number_literal) ))))) )) (argument_list "(pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }" if (parenthesized_expression "((iVar4 == 0) || (iVar5 == 0))" ( (binary_expression "(iVar4 == 0) || (iVar5 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }" { (expression_statement "*(undefined4 *)((int)pdVar15 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar15 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar15 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdVar15 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar15 + 0x2c)" ( (binary_expression "(int)pdVar15 + 0x2c" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }" else (compound_statement "{\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }" { (expression_statement "iVar23 = *(int *)(pdVar28 + 0x58);" (assignment_expression "iVar23 = *(int *)(pdVar28 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar28 + 0x58)" * (cast_expression "(int *)(pdVar28 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x58)" ( (binary_expression "pdVar28 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;" (assignment_expression "iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23" identifier = (binary_expression "((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23" (parenthesized_expression "((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1))" ( (binary_expression "(uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)" (binary_expression "(uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1)" (parenthesized_expression "(uVar11 + *(int *)(pdVar28 + 3))" ( (binary_expression "uVar11 + *(int *)(pdVar28 + 3)" identifier + (pointer_expression "*(int *)(pdVar28 + 3)" * (cast_expression "(int *)(pdVar28 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 3)" ( (binary_expression "pdVar28 + 3" identifier + number_literal) ))))) )) * (parenthesized_expression "((uint)pdVar17 >> 1)" ( (binary_expression "(uint)pdVar17 >> 1" (cast_expression "(uint)pdVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) + (parenthesized_expression "(uVar11 >> 1)" ( (binary_expression "uVar11 >> 1" identifier >> number_literal) ))) )) * identifier)) ;) (if_statement "if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }" if (parenthesized_expression "(0 < iVar23)" ( (binary_expression "0 < iVar23" number_literal < identifier) )) (compound_statement "{\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }" { (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);" do (compound_statement "{\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            }" { (expression_statement "iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);" (assignment_expression "iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21)" identifier = (pointer_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar21)" * (cast_expression "(int *)(*(int *)(pdVar28 + 0x5a) + iVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar28 + 0x5a) + iVar21)" ( (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar21" (pointer_expression "*(int *)(pdVar28 + 0x5a)" * (cast_expression "(int *)(pdVar28 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x5a)" ( (binary_expression "pdVar28 + 0x5a" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "iVar6 = iVar19 * 0xc;" (assignment_expression "iVar6 = iVar19 * 0xc" identifier = (binary_expression "iVar19 * 0xc" identifier * number_literal)) ;) (if_statement "if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }" if (parenthesized_expression "((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0))" ( (binary_expression "(*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)" (parenthesized_expression "(*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0)" ( (binary_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4)" * (cast_expression "(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar28 + 0x5a) + iVar6 + 4)" ( (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar6 + 4" (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar6" (pointer_expression "*(int *)(pdVar28 + 0x5a)" * (cast_expression "(int *)(pdVar28 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x5a)" ( (binary_expression "pdVar28 + 0x5a" identifier + number_literal) )))) + identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)" ( (comma_expression "uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0" (assignment_expression "uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4)" * (cast_expression "(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x2d0) + iVar6 + 4)" ( (binary_expression "*(int *)(iVar3 + 0x2d0) + iVar6 + 4" (binary_expression "*(int *)(iVar3 + 0x2d0) + iVar6" (pointer_expression "*(int *)(iVar3 + 0x2d0)" * (cast_expression "(int *)(iVar3 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2d0)" ( (binary_expression "iVar3 + 0x2d0" identifier + number_literal) )))) + identifier) + number_literal) ))))) , (binary_expression "uVar14 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }" { (if_statement "if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }" if (parenthesized_expression "((uVar14 & 1) == 0)" ( (binary_expression "(uVar14 & 1) == 0" (parenthesized_expression "(uVar14 & 1)" ( (binary_expression "uVar14 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }" { (expression_statement "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0" (pointer_expression "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4)" * (cast_expression "(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_4a0 + iVar19 * 8 + 4)" ( (binary_expression "(int)&uStack_4a0 + iVar19 * 8 + 4" (binary_expression "(int)&uStack_4a0 + iVar19 * 8" (cast_expression "(int)&uStack_4a0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_4a0" & identifier)) + (binary_expression "iVar19 * 8" identifier * number_literal)) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&uStack_4a0 + iVar19) = 0;" (assignment_expression "*(undefined4 *)(&uStack_4a0 + iVar19) = 0" (pointer_expression "*(undefined4 *)(&uStack_4a0 + iVar19)" * (cast_expression "(undefined4 *)(&uStack_4a0 + iVar19)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&uStack_4a0 + iVar19)" ( (binary_expression "&uStack_4a0 + iVar19" (pointer_expression "&uStack_4a0" & identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0" (pointer_expression "*(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4)" * (cast_expression "(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_2a0 + iVar19 * 8 + 4)" ( (binary_expression "(int)&uStack_2a0 + iVar19 * 8 + 4" (binary_expression "(int)&uStack_2a0 + iVar19 * 8" (cast_expression "(int)&uStack_2a0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_2a0" & identifier)) + (binary_expression "iVar19 * 8" identifier * number_literal)) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&uStack_2a0 + iVar19) = 0;" (assignment_expression "*(undefined4 *)(&uStack_2a0 + iVar19) = 0" (pointer_expression "*(undefined4 *)(&uStack_2a0 + iVar19)" * (cast_expression "(undefined4 *)(&uStack_2a0 + iVar19)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&uStack_2a0 + iVar19)" ( (binary_expression "&uStack_2a0 + iVar19" (pointer_expression "&uStack_2a0" & identifier) + identifier) )))) = number_literal) ;) (if_statement "if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }" if (parenthesized_expression "(0 < (int)pdVar17)" ( (binary_expression "0 < (int)pdVar17" number_literal < (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }" { (expression_statement "pdVar16 = (double *)0x0;" (assignment_expression "pdVar16 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = iVar4;" (assignment_expression "iVar6 = iVar4" identifier = identifier) ;) (do_statement "do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);" do (compound_statement "{\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    }" { (expression_statement "pfVar13 = (float *)(iVar6 + iVar20 * 4);" (assignment_expression "pfVar13 = (float *)(iVar6 + iVar20 * 4)" identifier = (cast_expression "(float *)(iVar6 + iVar20 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar20 * 4)" ( (binary_expression "iVar6 + iVar20 * 4" identifier + (binary_expression "iVar20 * 4" identifier * number_literal)) )))) ;) (if_statement "if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }" if (parenthesized_expression "(0 < (int)uVar11)" ( (binary_expression "0 < (int)uVar11" number_literal < (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }" { (expression_statement "dVar31 = (double)(&uStack_2a0)[iVar19];" (assignment_expression "dVar31 = (double)(&uStack_2a0)[iVar19]" identifier = (cast_expression "(double)(&uStack_2a0)[iVar19]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ]))) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);" do (compound_statement "{\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        }" { (if_statement "if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }" if (parenthesized_expression "(uVar11 - 1 == uVar14)" ( (binary_expression "uVar11 - 1 == uVar14" (binary_expression "uVar11 - 1" identifier - number_literal) == identifier) )) (compound_statement "{\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }" { (expression_statement "(&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;" (assignment_expression "(&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13" (subscript_expression "(&uStack_4a0)[iVar19]" (parenthesized_expression "(&uStack_4a0)" ( (pointer_expression "&uStack_4a0" & identifier) )) [ identifier ]) = (binary_expression "(double)(&uStack_4a0)[iVar19] + (double)*pfVar13" (cast_expression "(double)(&uStack_4a0)[iVar19]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_4a0)[iVar19]" (parenthesized_expression "(&uStack_4a0)" ( (pointer_expression "&uStack_4a0" & identifier) )) [ identifier ])) + (cast_expression "(double)*pfVar13" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar13" * identifier)))) ;) })) (expression_statement "dVar31 = dVar31 + (double)*pfVar13;" (assignment_expression "dVar31 = dVar31 + (double)*pfVar13" identifier = (binary_expression "dVar31 + (double)*pfVar13" identifier + (cast_expression "(double)*pfVar13" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar13" * identifier)))) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "pfVar13 = pfVar13 + iVar23;" (assignment_expression "pfVar13 = pfVar13 + iVar23" identifier = (binary_expression "pfVar13 + iVar23" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar11 != uVar14)" ( (binary_expression "uVar11 != uVar14" identifier != identifier) )) ;) (expression_statement "iVar6 = iVar6 + uVar11 * iVar23 * 4;" (assignment_expression "iVar6 = iVar6 + uVar11 * iVar23 * 4" identifier = (binary_expression "iVar6 + uVar11 * iVar23 * 4" identifier + (binary_expression "uVar11 * iVar23 * 4" (binary_expression "uVar11 * iVar23" identifier * identifier) * number_literal))) ;) (expression_statement "(&uStack_2a0)[iVar19] = dVar31;" (assignment_expression "(&uStack_2a0)[iVar19] = dVar31" (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ]) = identifier) ;) })) (expression_statement "pdVar16 = (double *)((int)pdVar16 + 1);" (assignment_expression "pdVar16 = (double *)((int)pdVar16 + 1)" identifier = (cast_expression "(double *)((int)pdVar16 + 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 1)" ( (binary_expression "(int)pdVar16 + 1" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;" (assignment_expression "iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6" identifier = (binary_expression "*(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6" (binary_expression "*(int *)(pdVar28 + 3) * 4 * iVar23" (binary_expression "*(int *)(pdVar28 + 3) * 4" (pointer_expression "*(int *)(pdVar28 + 3)" * (cast_expression "(int *)(pdVar28 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 3)" ( (binary_expression "pdVar28 + 3" identifier + number_literal) )))) * number_literal) * identifier) + identifier)) ;) }) while (parenthesized_expression "(pdVar16 != pdVar17)" ( (binary_expression "pdVar16 != pdVar17" identifier != identifier) )) ;) })) }) (else_clause "else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }" else (compound_statement "{\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }" { (expression_statement "iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;" (assignment_expression "iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6" identifier = (binary_expression "*(int *)(iVar3 + 0x2d0) + iVar6" (pointer_expression "*(int *)(iVar3 + 0x2d0)" * (cast_expression "(int *)(iVar3 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2d0)" ( (binary_expression "iVar3 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }" if (parenthesized_expression "(*(int *)(iVar6 + 4) != 0)" ( (binary_expression "*(int *)(iVar6 + 4) != 0" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }" { (expression_statement "*(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);" (assignment_expression "*(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4)" (pointer_expression "*(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + *(int *)(iVar6 + 8) * 4)" ( (binary_expression "iVar5 + *(int *)(iVar6 + 8) * 4" identifier + (binary_expression "*(int *)(iVar6 + 8) * 4" (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4)" * (cast_expression "(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar20 * 4 + iVar22 * 4)" ( (binary_expression "iVar4 + iVar20 * 4 + iVar22 * 4" (binary_expression "iVar4 + iVar20 * 4" identifier + (binary_expression "iVar20 * 4" identifier * number_literal)) + (binary_expression "iVar22 * 4" identifier * number_literal)) ))))) ;) })) }))) })) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "iVar23 = *(int *)(pdVar28 + 0x58);" (assignment_expression "iVar23 = *(int *)(pdVar28 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar28 + 0x58)" * (cast_expression "(int *)(pdVar28 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x58)" ( (binary_expression "pdVar28 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = iVar21 + 0xc;" (assignment_expression "iVar21 = iVar21 + 0xc" identifier = (binary_expression "iVar21 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 < iVar23)" ( (binary_expression "iVar20 < iVar23" identifier < identifier) )) ;) })) (if_statement "if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }" if (parenthesized_expression "(0 < *(int *)(pdVar28 + 3))" ( (binary_expression "0 < *(int *)(pdVar28 + 3)" number_literal < (pointer_expression "*(int *)(pdVar28 + 3)" * (cast_expression "(int *)(pdVar28 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 3)" ( (binary_expression "pdVar28 + 3" identifier + number_literal) ))))) )) (compound_statement "{\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }" { (expression_statement "iStack_4e8 = 0;" (assignment_expression "iStack_4e8 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = 0;" (assignment_expression "uVar34 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));" do (compound_statement "{\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            }" { (expression_statement "iVar23 = *(int *)(pdVar28 + 0x58);" (assignment_expression "iVar23 = *(int *)(pdVar28 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar28 + 0x58)" * (cast_expression "(int *)(pdVar28 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x58)" ( (binary_expression "pdVar28 + 0x58" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }" if (parenthesized_expression "(0 < iVar23)" ( (binary_expression "0 < iVar23" number_literal < identifier) )) (compound_statement "{\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }" { (expression_statement "iVar20 = iVar4 + iVar22 * 4;" (assignment_expression "iVar20 = iVar4 + iVar22 * 4" identifier = (binary_expression "iVar4 + iVar22 * 4" identifier + (binary_expression "iVar22 * 4" identifier * number_literal))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);" do (compound_statement "{\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                }" { (expression_statement "iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);" (assignment_expression "iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6)" identifier = (pointer_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6)" * (cast_expression "(int *)(*(int *)(pdVar28 + 0x5a) + iVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar28 + 0x5a) + iVar6)" ( (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar6" (pointer_expression "*(int *)(pdVar28 + 0x5a)" * (cast_expression "(int *)(pdVar28 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x5a)" ( (binary_expression "pdVar28 + 0x5a" identifier + number_literal) )))) + identifier) ))))) ;) (if_statement "if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }" if (parenthesized_expression "(*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0)" ( (binary_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4)" * (cast_expression "(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4)" ( (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4" (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc" (pointer_expression "*(int *)(pdVar28 + 0x5a)" * (cast_expression "(int *)(pdVar28 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x5a)" ( (binary_expression "pdVar28 + 0x5a" identifier + number_literal) )))) + (binary_expression "iVar19 * 0xc" identifier * number_literal)) + number_literal) )))) != number_literal) )) (compound_statement "{\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }" { (expression_statement "iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;" (assignment_expression "iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc" identifier = (binary_expression "*(int *)(iVar3 + 0x2d0) + iVar19 * 0xc" (pointer_expression "*(int *)(iVar3 + 0x2d0)" * (cast_expression "(int *)(iVar3 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2d0)" ( (binary_expression "iVar3 + 0x2d0" identifier + number_literal) )))) + (binary_expression "iVar19 * 0xc" identifier * number_literal))) ;) (if_statement "if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }" if (parenthesized_expression "(*(uint *)(iVar25 + 4) != 0)" ( (binary_expression "*(uint *)(iVar25 + 4) != 0" (pointer_expression "*(uint *)(iVar25 + 4)" * (cast_expression "(uint *)(iVar25 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }" { (if_statement "if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }" if (parenthesized_expression "((*(uint *)(iVar25 + 4) & 1) == 0)" ( (binary_expression "(*(uint *)(iVar25 + 4) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar25 + 4) & 1)" ( (binary_expression "*(uint *)(iVar25 + 4) & 1" (pointer_expression "*(uint *)(iVar25 + 4)" * (cast_expression "(uint *)(iVar25 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }" { (expression_statement "dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];" (assignment_expression "dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19]" identifier = (binary_expression "(double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19]" (cast_expression "(double)(&uStack_2a0)[iVar19]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ])) - (cast_expression "(double)(&uStack_4a0)[iVar19]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_4a0)[iVar19]" (parenthesized_expression "(&uStack_4a0)" ( (pointer_expression "&uStack_4a0" & identifier) )) [ identifier ])))) ;) (expression_statement "(&uStack_2a0)[iVar19] = dVar31;" (assignment_expression "(&uStack_2a0)[iVar19] = dVar31" (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0" (pointer_expression "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4)" * (cast_expression "(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_4a0 + iVar19 * 8 + 4)" ( (binary_expression "(int)&uStack_4a0 + iVar19 * 8 + 4" (binary_expression "(int)&uStack_4a0 + iVar19 * 8" (cast_expression "(int)&uStack_4a0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_4a0" & identifier)) + (binary_expression "iVar19 * 8" identifier * number_literal)) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&uStack_4a0 + iVar19) = 0;" (assignment_expression "*(undefined4 *)(&uStack_4a0 + iVar19) = 0" (pointer_expression "*(undefined4 *)(&uStack_4a0 + iVar19)" * (cast_expression "(undefined4 *)(&uStack_4a0 + iVar19)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&uStack_4a0 + iVar19)" ( (binary_expression "&uStack_4a0 + iVar19" (pointer_expression "&uStack_4a0" & identifier) + identifier) )))) = number_literal) ;) (if_statement "if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }" if (parenthesized_expression "(0 < (int)pdVar17)" ( (binary_expression "0 < (int)pdVar17" number_literal < (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }" { (expression_statement "iVar12 = (uVar11 - 1) * 4 * iVar23;" (assignment_expression "iVar12 = (uVar11 - 1) * 4 * iVar23" identifier = (binary_expression "(uVar11 - 1) * 4 * iVar23" (binary_expression "(uVar11 - 1) * 4" (parenthesized_expression "(uVar11 - 1)" ( (binary_expression "uVar11 - 1" identifier - number_literal) )) * number_literal) * identifier)) ;) (expression_statement "iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;" (assignment_expression "iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12" identifier = (binary_expression "(*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12" (binary_expression "(*(int *)(pdVar28 + 3) + 1) * 4 * iVar23" (binary_expression "(*(int *)(pdVar28 + 3) + 1) * 4" (parenthesized_expression "(*(int *)(pdVar28 + 3) + 1)" ( (binary_expression "*(int *)(pdVar28 + 3) + 1" (pointer_expression "*(int *)(pdVar28 + 3)" * (cast_expression "(int *)(pdVar28 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 3)" ( (binary_expression "pdVar28 + 3" identifier + number_literal) )))) + number_literal) )) * number_literal) * identifier) + identifier)) ;) (expression_statement "pfVar18 = (float *)(iVar4 + iVar21 * 4);" (assignment_expression "pfVar18 = (float *)(iVar4 + iVar21 * 4)" identifier = (cast_expression "(float *)(iVar4 + iVar21 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar21 * 4)" ( (binary_expression "iVar4 + iVar21 * 4" identifier + (binary_expression "iVar21 * 4" identifier * number_literal)) )))) ;) (expression_statement "pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);" (assignment_expression "pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4)" identifier = (cast_expression "(float *)(iVar4 + iVar12 + iVar21 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar12 + iVar21 * 4)" ( (binary_expression "iVar4 + iVar12 + iVar21 * 4" (binary_expression "iVar4 + iVar12" identifier + identifier) + (binary_expression "iVar21 * 4" identifier * number_literal)) )))) ;) (expression_statement "dVar30 = 0.0;" (assignment_expression "dVar30 = 0.0" identifier = number_literal) ;) (expression_statement "pdVar16 = (double *)0x0;" (assignment_expression "pdVar16 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);" do (compound_statement "{\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          }" { (expression_statement "dVar30 = dVar30 + (double)*pfVar18;" (assignment_expression "dVar30 = dVar30 + (double)*pfVar18" identifier = (binary_expression "dVar30 + (double)*pfVar18" identifier + (cast_expression "(double)*pfVar18" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar18" * identifier)))) ;) (expression_statement "dVar31 = dVar31 + (double)*pfVar13;" (assignment_expression "dVar31 = dVar31 + (double)*pfVar13" identifier = (binary_expression "dVar31 + (double)*pfVar13" identifier + (cast_expression "(double)*pfVar13" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar13" * identifier)))) ;) (expression_statement "pdVar16 = (double *)((int)pdVar16 + 1);" (assignment_expression "pdVar16 = (double *)((int)pdVar16 + 1)" identifier = (cast_expression "(double *)((int)pdVar16 + 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 1)" ( (binary_expression "(int)pdVar16 + 1" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pfVar18 = (float *)((int)pfVar18 + iVar23);" (assignment_expression "pfVar18 = (float *)((int)pfVar18 + iVar23)" identifier = (cast_expression "(float *)((int)pfVar18 + iVar23)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pfVar18 + iVar23)" ( (binary_expression "(int)pfVar18 + iVar23" (cast_expression "(int)pfVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pfVar13 = (float *)((int)pfVar13 + iVar23);" (assignment_expression "pfVar13 = (float *)((int)pfVar13 + iVar23)" identifier = (cast_expression "(float *)((int)pfVar13 + iVar23)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pfVar13 + iVar23)" ( (binary_expression "(int)pfVar13 + iVar23" (cast_expression "(int)pfVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) while (parenthesized_expression "(pdVar16 != pdVar17)" ( (binary_expression "pdVar16 != pdVar17" identifier != identifier) )) ;) (expression_statement "(&uStack_4a0)[iVar19] = dVar30;" (assignment_expression "(&uStack_4a0)[iVar19] = dVar30" (subscript_expression "(&uStack_4a0)[iVar19]" (parenthesized_expression "(&uStack_4a0)" ( (pointer_expression "&uStack_4a0" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&uStack_2a0)[iVar19] = dVar31;" (assignment_expression "(&uStack_2a0)[iVar19] = dVar31" (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ]) = identifier) ;) })) (expression_statement "dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);" (assignment_expression "dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7)" identifier = (cast_expression "(double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7)" (parenthesized_expression "(**(code **)(puVar26 + 0x202a90))" ( (pointer_expression "**(code **)(puVar26 + 0x202a90)" * (pointer_expression "*(code **)(puVar26 + 0x202a90)" * (cast_expression "(code **)(puVar26 + 0x202a90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x202a90)" ( (binary_expression "puVar26 + 0x202a90" identifier + number_literal) ))))) )) (argument_list "(uVar2,uVar7)" ( identifier , identifier ))))) ;) (expression_statement "uVar29 = (undefined4)uVar34;" (assignment_expression "uVar29 = (undefined4)uVar34" identifier = (cast_expression "(undefined4)uVar34" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }" if (parenthesized_expression "((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32)" ( (binary_expression "(double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32" (cast_expression "(double)*(float *)(iVar20 + iVar21 * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar20 + iVar21 * 4)" * (cast_expression "(float *)(iVar20 + iVar21 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + iVar21 * 4)" ( (binary_expression "iVar20 + iVar21 * 4" identifier + (binary_expression "iVar21 * 4" identifier * number_literal)) ))))) <= (binary_expression "(double)(&uStack_2a0)[iVar19] / dVar31 + dVar32" (binary_expression "(double)(&uStack_2a0)[iVar19] / dVar31" (cast_expression "(double)(&uStack_2a0)[iVar19]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ])) / identifier) + identifier)) )) (compound_statement "{\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }" { (expression_statement "iVar23 = *(int *)(iVar25 + 8);" (assignment_expression "iVar23 = *(int *)(iVar25 + 8)" identifier = (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }" else (compound_statement "{\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }" { (expression_statement "uVar29 = (undefined4)uVar33;" (assignment_expression "uVar29 = (undefined4)uVar33" identifier = (cast_expression "(undefined4)uVar33" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "iVar23 = *(int *)(iVar25 + 8);" (assignment_expression "iVar23 = *(int *)(iVar25 + 8)" identifier = (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) ))))) ;) }))) (expression_statement "*(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;" (assignment_expression "*(undefined4 *)(iVar5 + iVar23 * 4) = uVar29" (pointer_expression "*(undefined4 *)(iVar5 + iVar23 * 4)" * (cast_expression "(undefined4 *)(iVar5 + iVar23 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar23 * 4)" ( (binary_expression "iVar5 + iVar23 * 4" identifier + (binary_expression "iVar23 * 4" identifier * number_literal)) )))) = identifier) ;) }) (else_clause "else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }" else (compound_statement "{\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }" { (expression_statement "*(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);" (assignment_expression "*(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4)" (pointer_expression "*(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + *(int *)(iVar25 + 8) * 4)" ( (binary_expression "iVar5 + *(int *)(iVar25 + 8) * 4" identifier + (binary_expression "*(int *)(iVar25 + 8) * 4" (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*(undefined4 *)(iVar20 + iVar21 * 4)" * (cast_expression "(undefined4 *)(iVar20 + iVar21 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + iVar21 * 4)" ( (binary_expression "iVar20 + iVar21 * 4" identifier + (binary_expression "iVar21 * 4" identifier * number_literal)) ))))) ;) }))) })) })) (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (expression_statement "iVar23 = *(int *)(pdVar28 + 0x58);" (assignment_expression "iVar23 = *(int *)(pdVar28 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar28 + 0x58)" * (cast_expression "(int *)(pdVar28 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x58)" ( (binary_expression "pdVar28 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = iVar6 + 0xc;" (assignment_expression "iVar6 = iVar6 + 0xc" identifier = (binary_expression "iVar6 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar21 < iVar23)" ( (binary_expression "iVar21 < iVar23" identifier < identifier) )) ;) })) (expression_statement "iVar4 = iVar4 + iVar23 * 4;" (assignment_expression "iVar4 = iVar4 + iVar23 * 4" identifier = (binary_expression "iVar4 + iVar23 * 4" identifier + (binary_expression "iVar23 * 4" identifier * number_literal))) ;) (expression_statement "iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;" (assignment_expression "iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4" identifier = (binary_expression "iVar5 + *(int *)(iVar3 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar3 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar3 + 0x2c0)" * (cast_expression "(int *)(iVar3 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c0)" ( (binary_expression "iVar3 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iStack_4e8 = iStack_4e8 + 1;" (assignment_expression "iStack_4e8 = iStack_4e8 + 1" identifier = (binary_expression "iStack_4e8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_4e8 < *(int *)(pdVar28 + 3))" ( (binary_expression "iStack_4e8 < *(int *)(pdVar28 + 3)" identifier < (pointer_expression "*(int *)(pdVar28 + 3)" * (cast_expression "(int *)(pdVar28 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 3)" ( (binary_expression "pdVar28 + 3" identifier + number_literal) ))))) )) ;) })) (expression_statement "pdVar16 = pdVar8;" (assignment_expression "pdVar16 = pdVar8" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10)" identifier = (call_expression "(**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10)" (parenthesized_expression "(**(code **)(puVar26 + 0x2036a0))" ( (pointer_expression "**(code **)(puVar26 + 0x2036a0)" * (pointer_expression "*(code **)(puVar26 + 0x2036a0)" * (cast_expression "(code **)(puVar26 + 0x2036a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2036a0)" ( (binary_expression "puVar26 + 0x2036a0" identifier + number_literal) ))))) )) (argument_list "(pdVar8,uVar10)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }" { (expression_statement "*(undefined4 *)((int)pdVar15 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar15 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar15 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdVar15 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar15 + 0x2c)" ( (binary_expression "(int)pdVar15 + 0x2c" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }" if (parenthesized_expression "(*(int *)(pdVar28 + 0x65) != 0)" ( (binary_expression "*(int *)(pdVar28 + 0x65) != 0" (pointer_expression "*(int *)(pdVar28 + 0x65)" * (cast_expression "(int *)(pdVar28 + 0x65)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x65)" ( (binary_expression "pdVar28 + 0x65" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }" { (expression_statement "piVar24 = *(int **)(pdVar15 + 6);" (assignment_expression "piVar24 = *(int **)(pdVar15 + 6)" identifier = (pointer_expression "*(int **)(pdVar15 + 6)" * (cast_expression "(int **)(pdVar15 + 6)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar15 + 6)" ( (binary_expression "pdVar15 + 6" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar26 + 0x20348c))();" (call_expression "(**(code **)(puVar26 + 0x20348c))()" (parenthesized_expression "(**(code **)(puVar26 + 0x20348c))" ( (pointer_expression "**(code **)(puVar26 + 0x20348c)" * (pointer_expression "*(code **)(puVar26 + 0x20348c)" * (cast_expression "(code **)(puVar26 + 0x20348c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x20348c)" ( (binary_expression "puVar26 + 0x20348c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar14 = piVar24[1] + 1;" (assignment_expression "uVar14 = piVar24[1] + 1" identifier = (binary_expression "piVar24[1] + 1" (subscript_expression "piVar24[1]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;" (assignment_expression "*piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24" (pointer_expression "*piVar24" * identifier) = (binary_expression "(uint)(uVar14 < (uint)piVar24[1]) + *piVar24" (call_expression "(uint)(uVar14 < (uint)piVar24[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < (uint)piVar24[1])" ( (binary_expression "uVar14 < (uint)piVar24[1]" identifier < (cast_expression "(uint)piVar24[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar24[1]" identifier [ number_literal ]))) ))) + (pointer_expression "*piVar24" * identifier))) ;) (expression_statement "piVar24[1] = uVar14;" (assignment_expression "piVar24[1] = uVar14" (subscript_expression "piVar24[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(**(code **)(puVar26 + 0x2035e0))();" (call_expression "(**(code **)(puVar26 + 0x2035e0))()" (parenthesized_expression "(**(code **)(puVar26 + 0x2035e0))" ( (pointer_expression "**(code **)(puVar26 + 0x2035e0)" * (pointer_expression "*(code **)(puVar26 + 0x2035e0)" * (cast_expression "(code **)(puVar26 + 0x2035e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2035e0)" ( (binary_expression "puVar26 + 0x2035e0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pdVar16 = pdVar28;" (assignment_expression "pdVar16 = pdVar28" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c))" identifier = (call_expression "(**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c))" (parenthesized_expression "(**(code **)(puVar26 + 0x202e5c))" ( (pointer_expression "**(code **)(puVar26 + 0x202e5c)" * (pointer_expression "*(code **)(puVar26 + 0x202e5c)" * (cast_expression "(code **)(puVar26 + 0x202e5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x202e5c)" ( (binary_expression "puVar26 + 0x202e5c" identifier + number_literal) ))))) )) (argument_list "(pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c))" ( identifier , (binary_expression "iVar1 + 0xe60" identifier + number_literal) , (pointer_expression "**(undefined4 **)(pdVar15 + 6)" * (pointer_expression "*(undefined4 **)(pdVar15 + 6)" * (cast_expression "(undefined4 **)(pdVar15 + 6)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar15 + 6)" ( (binary_expression "pdVar15 + 6" identifier + number_literal) ))))) , (subscript_expression "(*(undefined4 **)(pdVar15 + 6))[1]" (parenthesized_expression "(*(undefined4 **)(pdVar15 + 6))" ( (pointer_expression "*(undefined4 **)(pdVar15 + 6)" * (cast_expression "(undefined4 **)(pdVar15 + 6)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar15 + 6)" ( (binary_expression "pdVar15 + 6" identifier + number_literal) )))) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)((int)pdVar28 + 0x1c)" * (cast_expression "(undefined4 *)((int)pdVar28 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar28 + 0x1c)" ( (binary_expression "(int)pdVar28 + 0x1c" (cast_expression "(int)pdVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }" { (expression_statement "*(undefined4 *)((int)pdVar15 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar15 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar15 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdVar15 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar15 + 0x2c)" ( (binary_expression "(int)pdVar15 + 0x2c" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) })) }))) })) (expression_statement "iStack_4e4 = iStack_4e4 + 1;" (assignment_expression "iStack_4e4 = iStack_4e4 + 1" identifier = (binary_expression "iStack_4e4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar35 != iStack_4e4)" ( (binary_expression "iVar35 != iStack_4e4" identifier != identifier) )) ;) })) (if_statement "if (iStack_9c != **(int **)(puVar26 + 0x2033d8)) {\n    pcVar27 = *(code **)(puVar26 + 0x20320c);\n    (*pcVar27)();\n    iVar35 = *(int *)(pdVar16 + 1);\n    iVar4 = *(int *)(iVar35 + 0x1c);\n    iVar1 = (**(code **)(pcVar27 + 0x203418))();\n    iVar3 = (**(code **)(pcVar27 + 0x203014))();\n    if (iVar1 == 0) {\n      trap(7);\n    }\n    iVar5 = iVar4 / iVar1;\n    iVar4 = iVar4 % iVar1;\n    if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }\n    iVar4 = iVar5 * iVar3 + iVar4;\n    iVar5 = iVar5 + iVar4;\n    iVar1 = *(int *)(pcVar27 + 0x2023d4);\n    if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }\n    return iVar1;\n  }" if (parenthesized_expression "(iStack_9c != **(int **)(puVar26 + 0x2033d8))" ( (binary_expression "iStack_9c != **(int **)(puVar26 + 0x2033d8)" identifier != (pointer_expression "**(int **)(puVar26 + 0x2033d8)" * (pointer_expression "*(int **)(puVar26 + 0x2033d8)" * (cast_expression "(int **)(puVar26 + 0x2033d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2033d8)" ( (binary_expression "puVar26 + 0x2033d8" identifier + number_literal) )))))) )) (compound_statement "{\n    pcVar27 = *(code **)(puVar26 + 0x20320c);\n    (*pcVar27)();\n    iVar35 = *(int *)(pdVar16 + 1);\n    iVar4 = *(int *)(iVar35 + 0x1c);\n    iVar1 = (**(code **)(pcVar27 + 0x203418))();\n    iVar3 = (**(code **)(pcVar27 + 0x203014))();\n    if (iVar1 == 0) {\n      trap(7);\n    }\n    iVar5 = iVar4 / iVar1;\n    iVar4 = iVar4 % iVar1;\n    if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }\n    iVar4 = iVar5 * iVar3 + iVar4;\n    iVar5 = iVar5 + iVar4;\n    iVar1 = *(int *)(pcVar27 + 0x2023d4);\n    if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }\n    return iVar1;\n  }" { (expression_statement "pcVar27 = *(code **)(puVar26 + 0x20320c);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0x20320c)" identifier = (pointer_expression "*(code **)(puVar26 + 0x20320c)" * (cast_expression "(code **)(puVar26 + 0x20320c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x20320c)" ( (binary_expression "puVar26 + 0x20320c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar35 = *(int *)(pdVar16 + 1);" (assignment_expression "iVar35 = *(int *)(pdVar16 + 1)" identifier = (pointer_expression "*(int *)(pdVar16 + 1)" * (cast_expression "(int *)(pdVar16 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 1)" ( (binary_expression "pdVar16 + 1" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(iVar35 + 0x1c);" (assignment_expression "iVar4 = *(int *)(iVar35 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar35 + 0x1c)" * (cast_expression "(int *)(iVar35 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x1c)" ( (binary_expression "iVar35 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = (**(code **)(pcVar27 + 0x203418))();" (assignment_expression "iVar1 = (**(code **)(pcVar27 + 0x203418))()" identifier = (call_expression "(**(code **)(pcVar27 + 0x203418))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x203418))" ( (pointer_expression "**(code **)(pcVar27 + 0x203418)" * (pointer_expression "*(code **)(pcVar27 + 0x203418)" * (cast_expression "(code **)(pcVar27 + 0x203418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x203418)" ( (binary_expression "pcVar27 + 0x203418" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar3 = (**(code **)(pcVar27 + 0x203014))();" (assignment_expression "iVar3 = (**(code **)(pcVar27 + 0x203014))()" identifier = (call_expression "(**(code **)(pcVar27 + 0x203014))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x203014))" ( (pointer_expression "**(code **)(pcVar27 + 0x203014)" * (pointer_expression "*(code **)(pcVar27 + 0x203014)" * (cast_expression "(code **)(pcVar27 + 0x203014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x203014)" ( (binary_expression "pcVar27 + 0x203014" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar5 = iVar4 / iVar1;" (assignment_expression "iVar5 = iVar4 / iVar1" identifier = (binary_expression "iVar4 / iVar1" identifier / identifier)) ;) (expression_statement "iVar4 = iVar4 % iVar1;" (assignment_expression "iVar4 = iVar4 % iVar1" identifier = (binary_expression "iVar4 % iVar1" identifier % identifier)) ;) (if_statement "if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }" if (parenthesized_expression "(iVar3 < iVar4)" ( (binary_expression "iVar3 < iVar4" identifier < identifier) )) (compound_statement "{\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) })) (expression_statement "iVar4 = iVar5 * iVar3 + iVar4;" (assignment_expression "iVar4 = iVar5 * iVar3 + iVar4" identifier = (binary_expression "iVar5 * iVar3 + iVar4" (binary_expression "iVar5 * iVar3" identifier * identifier) + identifier)) ;) (expression_statement "iVar5 = iVar5 + iVar4;" (assignment_expression "iVar5 = iVar5 + iVar4" identifier = (binary_expression "iVar5 + iVar4" identifier + identifier)) ;) (expression_statement "iVar1 = *(int *)(pcVar27 + 0x2023d4);" (assignment_expression "iVar1 = *(int *)(pcVar27 + 0x2023d4)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x2023d4)" * (cast_expression "(int *)(pcVar27 + 0x2023d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2023d4)" ( (binary_expression "pcVar27 + 0x2023d4" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }" if (parenthesized_expression "(iVar4 < iVar5)" ( (binary_expression "iVar4 < iVar5" identifier < identifier) )) (compound_statement "{\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }" { (expression_statement "uVar7 = *(undefined4 *)(pdVar16 + 2);" (assignment_expression "uVar7 = *(undefined4 *)(pdVar16 + 2)" identifier = (pointer_expression "*(undefined4 *)(pdVar16 + 2)" * (cast_expression "(undefined4 *)(pdVar16 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 2)" ( (binary_expression "pdVar16 + 2" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);" (assignment_expression "uVar2 = *(undefined4 *)((int)pdVar16 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar16 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar16 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0xc)" ( (binary_expression "(int)pdVar16 + 0xc" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar32 = *pdVar16;" (assignment_expression "dVar32 = *pdVar16" identifier = (pointer_expression "*pdVar16" * identifier)) ;) (expression_statement "uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);" (assignment_expression "uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8)" identifier = (binary_expression "(ulonglong)*(uint *)(iVar1 + 0x4aa8)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar1 + 0x4aa8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x4aa8)" ( (binary_expression "iVar1 + 0x4aa8" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(pcVar27 + 0x2023ec);" (assignment_expression "iVar3 = *(int *)(pcVar27 + 0x2023ec)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x2023ec)" * (cast_expression "(int *)(pcVar27 + 0x2023ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2023ec)" ( (binary_expression "pcVar27 + 0x2023ec" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);" do (compound_statement "{\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      }" { (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) (if_statement "if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(*(int *)((int)pdVar16 + 0x14) != 0)" ( (binary_expression "*(int *)((int)pdVar16 + 0x14) != 0" (pointer_expression "*(int *)((int)pdVar16 + 0x14)" * (cast_expression "(int *)((int)pdVar16 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x14)" ( (binary_expression "(int)pdVar16 + 0x14" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }" { (expression_statement "pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);" (assignment_expression "pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2)" identifier = (cast_expression "(float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x203158))" ( (pointer_expression "**(code **)(pcVar27 + 0x203158)" * (pointer_expression "*(code **)(pcVar27 + 0x203158)" * (cast_expression "(code **)(pcVar27 + 0x203158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x203158)" ( (binary_expression "pcVar27 + 0x203158" identifier + number_literal) ))))) )) (argument_list "(uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar35 + 0x18)" * (cast_expression "(undefined4 *)(iVar35 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x18)" ( (binary_expression "iVar35 + 0x18" identifier + number_literal) )))) , number_literal , identifier ))))) ;) (if_statement "if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }" if (parenthesized_expression "(pfVar13 == (float *)0x0)" ( (binary_expression "pfVar13 == (float *)0x0" identifier == (cast_expression "(float *)0x0" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }" { (expression_statement "*(undefined4 *)((int)pdVar16 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar16 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar16 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x14)" ( (binary_expression "(int)pdVar16 + 0x14" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }" else (compound_statement "{\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (if_statement "if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }" if (parenthesized_expression "(0 < *(int *)(iVar35 + 0x18))" ( (binary_expression "0 < *(int *)(iVar35 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar35 + 0x18)" * (cast_expression "(int *)(iVar35 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x18)" ( (binary_expression "iVar35 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }" { (do_statement "do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));" do (compound_statement "{\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              }" { (expression_statement "dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);" (assignment_expression "dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13)" identifier = (cast_expression "(double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13)" (parenthesized_expression "(**(code **)(pcVar27 + 0x202964))" ( (pointer_expression "**(code **)(pcVar27 + 0x202964)" * (pointer_expression "*(code **)(pcVar27 + 0x202964)" * (cast_expression "(code **)(pcVar27 + 0x202964)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x202964)" ( (binary_expression "pcVar27 + 0x202964" identifier + number_literal) ))))) )) (argument_list "(iVar35,pfVar13)" ( identifier , identifier ))))) ;) (expression_statement "iVar22 = *(int *)(iVar35 + 0x2c0);" (assignment_expression "iVar22 = *(int *)(iVar35 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar35 + 0x2c0)" * (cast_expression "(int *)(iVar35 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x2c0)" ( (binary_expression "iVar35 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }" if (parenthesized_expression "(0 < iVar22)" ( (binary_expression "0 < iVar22" number_literal < identifier) )) (compound_statement "{\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "pfVar18 = pfVar13;" (assignment_expression "pfVar18 = pfVar13" identifier = identifier) ;) (do_statement "do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);" do (compound_statement "{\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  }" { (if_statement "if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }" if (parenthesized_expression "((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)" ( (binary_expression "(*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2)" ( (binary_expression "*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2" (pointer_expression "*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4)" * (cast_expression "(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4)" ( (binary_expression "*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4" (binary_expression "*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc" (pointer_expression "*(int *)(iVar35 + 0x2d0)" * (cast_expression "(int *)(iVar35 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x2d0)" ( (binary_expression "iVar35 + 0x2d0" identifier + number_literal) )))) + (binary_expression "*(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc" (pointer_expression "*(int *)(*(int *)(iVar35 + 0x2d0) + iVar20)" * (cast_expression "(int *)(*(int *)(iVar35 + 0x2d0) + iVar20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar35 + 0x2d0) + iVar20)" ( (binary_expression "*(int *)(iVar35 + 0x2d0) + iVar20" (pointer_expression "*(int *)(iVar35 + 0x2d0)" * (cast_expression "(int *)(iVar35 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x2d0)" ( (binary_expression "iVar35 + 0x2d0" identifier + number_literal) )))) + identifier) )))) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }" { (if_statement "if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }" if (parenthesized_expression "(*(int *)(iVar35 + 0x2cc) != 0x7ffffff)" ( (binary_expression "*(int *)(iVar35 + 0x2cc) != 0x7ffffff" (pointer_expression "*(int *)(iVar35 + 0x2cc)" * (cast_expression "(int *)(iVar35 + 0x2cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x2cc)" ( (binary_expression "iVar35 + 0x2cc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                        dVar31 = (double)*pfVar18;\n                      }" { (expression_statement "dVar31 = (double)*pfVar18;" (assignment_expression "dVar31 = (double)*pfVar18" identifier = (cast_expression "(double)*pfVar18" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar18" * identifier))) ;) })) (if_statement "if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }" if (parenthesized_expression "(dVar31 <= dVar32)" ( (binary_expression "dVar31 <= dVar32" identifier <= identifier) )) (compound_statement "{\n                        *pfVar18 = 0.0;\n                      }" { (expression_statement "*pfVar18 = 0.0;" (assignment_expression "*pfVar18 = 0.0" (pointer_expression "*pfVar18" * identifier) = number_literal) ;) }) (else_clause "else {\n                        *pfVar18 = (float)uVar33;\n                      }" else (compound_statement "{\n                        *pfVar18 = (float)uVar33;\n                      }" { (expression_statement "*pfVar18 = (float)uVar33;" (assignment_expression "*pfVar18 = (float)uVar33" (pointer_expression "*pfVar18" * identifier) = (cast_expression "(float)uVar33" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) })) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "iVar22 = *(int *)(iVar35 + 0x2c0);" (assignment_expression "iVar22 = *(int *)(iVar35 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar35 + 0x2c0)" * (cast_expression "(int *)(iVar35 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x2c0)" ( (binary_expression "iVar35 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = iVar20 + 0xc;" (assignment_expression "iVar20 = iVar20 + 0xc" identifier = (binary_expression "iVar20 + 0xc" identifier + number_literal)) ;) (expression_statement "pfVar18 = pfVar18 + 1;" (assignment_expression "pfVar18 = pfVar18 + 1" identifier = (binary_expression "pfVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar23 < iVar22)" ( (binary_expression "iVar23 < iVar22" identifier < identifier) )) ;) })) (expression_statement "pfVar13 = pfVar13 + iVar22;" (assignment_expression "pfVar13 = pfVar13 + iVar22" identifier = (binary_expression "pfVar13 + iVar22" identifier + identifier)) ;) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 < *(int *)(iVar35 + 0x18))" ( (binary_expression "iVar1 < *(int *)(iVar35 + 0x18)" identifier < (pointer_expression "*(int *)(iVar35 + 0x18)" * (cast_expression "(int *)(iVar35 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x18)" ( (binary_expression "iVar35 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);" (assignment_expression "iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2)" identifier = (call_expression "(**(code **)(pcVar27 + 0x203004))(uVar7,uVar2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x203004))" ( (pointer_expression "**(code **)(pcVar27 + 0x203004)" * (pointer_expression "*(code **)(pcVar27 + 0x203004)" * (cast_expression "(code **)(pcVar27 + 0x203004)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x203004)" ( (binary_expression "pcVar27 + 0x203004" identifier + number_literal) ))))) )) (argument_list "(uVar7,uVar2)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }" { (expression_statement "*(undefined4 *)((int)pdVar16 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar16 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar16 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x14)" ( (binary_expression "(int)pdVar16 + 0x14" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "iVar1 = *(int *)(iVar35 + 0x328);" (assignment_expression "iVar1 = *(int *)(iVar35 + 0x328)" identifier = (pointer_expression "*(int *)(iVar35 + 0x328)" * (cast_expression "(int *)(iVar35 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x328)" ( (binary_expression "iVar35 + 0x328" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }" { (expression_statement "piVar24 = *(int **)(pdVar16 + 3);" (assignment_expression "piVar24 = *(int **)(pdVar16 + 3)" identifier = (pointer_expression "*(int **)(pdVar16 + 3)" * (cast_expression "(int **)(pdVar16 + 3)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar16 + 3)" ( (binary_expression "pdVar16 + 3" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar27 + 0x202df0))();" (call_expression "(**(code **)(pcVar27 + 0x202df0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x202df0))" ( (pointer_expression "**(code **)(pcVar27 + 0x202df0)" * (pointer_expression "*(code **)(pcVar27 + 0x202df0)" * (cast_expression "(code **)(pcVar27 + 0x202df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x202df0)" ( (binary_expression "pcVar27 + 0x202df0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar11 = piVar24[1] + 1;" (assignment_expression "uVar11 = piVar24[1] + 1" identifier = (binary_expression "piVar24[1] + 1" (subscript_expression "piVar24[1]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;" (assignment_expression "*piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24" (pointer_expression "*piVar24" * identifier) = (binary_expression "(uint)(uVar11 < (uint)piVar24[1]) + *piVar24" (call_expression "(uint)(uVar11 < (uint)piVar24[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < (uint)piVar24[1])" ( (binary_expression "uVar11 < (uint)piVar24[1]" identifier < (cast_expression "(uint)piVar24[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar24[1]" identifier [ number_literal ]))) ))) + (pointer_expression "*piVar24" * identifier))) ;) (expression_statement "piVar24[1] = uVar11;" (assignment_expression "piVar24[1] = uVar11" (subscript_expression "piVar24[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(**(code **)(pcVar27 + 0x202f44))();" (call_expression "(**(code **)(pcVar27 + 0x202f44))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x202f44))" ( (pointer_expression "**(code **)(pcVar27 + 0x202f44)" * (pointer_expression "*(code **)(pcVar27 + 0x202f44)" * (cast_expression "(code **)(pcVar27 + 0x202f44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x202f44)" ( (binary_expression "pcVar27 + 0x202f44" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "piVar24 = *(int **)(pdVar16 + 3);" (assignment_expression "piVar24 = *(int **)(pdVar16 + 3)" identifier = (pointer_expression "*(int **)(pdVar16 + 3)" * (cast_expression "(int **)(pdVar16 + 3)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar16 + 3)" ( (binary_expression "pdVar16 + 3" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *piVar24;" (assignment_expression "iVar1 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (expression_statement "uVar11 = piVar24[1];" (assignment_expression "uVar11 = piVar24[1]" identifier = (subscript_expression "piVar24[1]" identifier [ number_literal ])) ;) (expression_statement "*piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;" (assignment_expression "*piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1" (pointer_expression "*piVar24" * identifier) = (binary_expression "(uint)(uVar11 + 1 < uVar11) + iVar1" (call_expression "(uint)(uVar11 + 1 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 + 1 < uVar11)" ( (binary_expression "uVar11 + 1 < uVar11" (binary_expression "uVar11 + 1" identifier + number_literal) < identifier) ))) + identifier)) ;) (expression_statement "piVar24[1] = uVar11 + 1;" (assignment_expression "piVar24[1] = uVar11 + 1" (subscript_expression "piVar24[1]" identifier [ number_literal ]) = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;" (assignment_expression "iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))" identifier = (call_expression "(**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))" (parenthesized_expression "(**(code **)(pcVar27 + 0x2027c0))" ( (pointer_expression "**(code **)(pcVar27 + 0x2027c0)" * (pointer_expression "*(code **)(pcVar27 + 0x2027c0)" * (cast_expression "(code **)(pcVar27 + 0x2027c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2027c0)" ( (binary_expression "pcVar27 + 0x2027c0" identifier + number_literal) ))))) )) (argument_list "(iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))" ( identifier , (binary_expression "iVar3 + 0xe68" identifier + number_literal) , identifier , identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar35 + 0x1c)" * (cast_expression "(undefined4 *)(iVar35 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x1c)" ( (binary_expression "iVar35 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }" { (expression_statement "*(undefined4 *)((int)pdVar16 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar16 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar16 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x14)" ( (binary_expression "(int)pdVar16 + 0x14" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) })) }))) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != iVar4)" ( (binary_expression "iVar5 != iVar4" identifier != identifier) )) ;) })) (return_statement "return iVar1;" return identifier ;) })) (return_statement "return **(int **)(puVar26 + 0x2033d8);" return (pointer_expression "**(int **)(puVar26 + 0x2033d8)" * (pointer_expression "*(int **)(puVar26 + 0x2033d8)" * (cast_expression "(int **)(puVar26 + 0x2033d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2033d8)" ( (binary_expression "puVar26 + 0x2033d8" identifier + number_literal) ))))) ;) })))
(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\nImage * TrimImage(Image *image,ExceptionInfo *exception)\n\n{\n  double *pdVar1;\n  Image *pIVar2;\n  size_t sVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  double *pdVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  int iVar15;\n  float *pfVar16;\n  uint uVar17;\n  double *pdVar18;\n  double *pdVar19;\n  float *pfVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int *piVar26;\n  int iVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  double *pdVar30;\n  undefined4 uVar31;\n  double dVar32;\n  double dVar33;\n  double dVar34;\n  ulonglong uVar35;\n  undefined8 uVar36;\n  int iVar37;\n  int iStack_4e8;\n  int iStack_4e4;\n  undefined8 uStack_4a0;\n  undefined8 uStack_2a0;\n  Image *pIStack_9c;\n  Image *pIStack_98;\n  Image *pIStack_94;\n  ExceptionInfo *pEStack_90;\n  size_t local_38;\n  size_t local_34;\n  int local_30;\n  int local_2c;\n  RectangleInfo geometry;\n  \n  pdVar1 = *(double **)PTR___stack_chk_guard_003fa248;\n  if (image == (Image *)0x0) {\n    pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x7b0,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96e,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return pIVar2;\n  }\n  if (image->signature != 0xabacadab) {\n    pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x784,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96f,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return pIVar2;\n  }\n  if (image->debug != MagickFalse) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }\n  (*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,image,exception);\n  geometry.width = local_38;\n  geometry.height = local_34;\n  geometry.x = local_30;\n  geometry.y = local_2c;\n  if ((local_38 == 0) || (local_34 == 0)) {\n    pIVar2 = (Image *)(*(code *)PTR_CloneImage_003fa848)(image,1,1,1);\n    if (pIVar2 != (Image *)0x0) {\n      (pIVar2->background_color).alpha_trait = BlendPixelTrait;\n      *(undefined4 *)((int)&(pIVar2->background_color).alpha + 4) = 0;\n      *(undefined4 *)&(pIVar2->background_color).alpha = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(pIVar2,exception);\n      sVar3 = (image->page).height;\n      (pIVar2->page).width = (image->page).width;\n      (pIVar2->page).height = sVar3;\n      (pIVar2->page).x = -1;\n      (pIVar2->page).y = -1;\n    }\n  }\n  else {\n    geometry.x = local_30 + (image->page).x;\n    geometry.y = local_2c + (image->page).y;\n    pIVar2 = (Image *)(*(code *)PTR_CropImage_003fa0d0)(image,&geometry,exception);\n    if (pIVar2 != (Image *)0x0) {\n      (*(code *)PTR_Update8BIMClipPath_003f9ba0)(pIVar2,image->columns,image->rows,&geometry);\n    }\n  }\n  if (pdVar1 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return pIVar2;\n  }\n  puVar28 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  pIStack_9c = (Image *)**(undefined4 **)(puVar28 + 0x2033d8);\n  pdVar30 = *(double **)(pdVar1 + 2);\n  iStack_4e4 = *(int *)((int)pdVar30 + 0x1c);\n  pIStack_98 = image;\n  pIStack_94 = pIVar2;\n  pEStack_90 = exception;\n  iVar4 = (**(code **)(puVar28 + 0x203ab4))();\n  iVar5 = (**(code **)(puVar28 + 0x2036b0))();\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar37 = iStack_4e4 / iVar4;\n  iStack_4e4 = iStack_4e4 % iVar4;\n  if (iVar5 < iStack_4e4) {\n    iVar37 = iVar37 + 1;\n    iStack_4e4 = 0;\n  }\n  pdVar18 = (double *)(iVar37 * iVar5);\n  iStack_4e4 = (int)pdVar18 + iStack_4e4;\n  iVar37 = iVar37 + iStack_4e4;\n  if (iStack_4e4 < iVar37) {\n    uVar10 = *(undefined4 *)((int)pdVar1 + 0xc);\n    uVar6 = *(undefined4 *)(pdVar1 + 1);\n    iVar5 = *(int *)(pdVar1 + 5);\n    pdVar11 = *(double **)((int)pdVar1 + 0x24);\n    uVar12 = *(undefined4 *)(pdVar1 + 4);\n    uVar13 = *(undefined4 *)((int)pdVar1 + 0x1c);\n    dVar34 = *pdVar1;\n    pdVar19 = *(double **)(pdVar1 + 3);\n    uVar14 = *(uint *)((int)pdVar1 + 0x14);\n    iVar4 = *(int *)(puVar28 + 0x202a88);\n    uVar35 = (ulonglong)*(uint *)(*(int *)(puVar28 + 0x202a70) + 0x4aa8);\n    pdVar18 = pdVar19;\n    do {\n      if (*(int *)((int)pdVar1 + 0x2c) != 0) {\n        iVar7 = (**(code **)(puVar28 + 0x203804))\n                          (uVar12,-((int)uVar14 / 2),iStack_4e4 - ((uint)pdVar19 >> 1),\n                           uVar14 + *(int *)(pdVar30 + 3),pdVar19,uVar13);\n        pdVar18 = pdVar11;\n        iVar8 = (**(code **)(puVar28 + 0x202df8))\n                          (pdVar11,0,iStack_4e4,*(undefined4 *)(iVar5 + 0x18),1,uVar13);\n        if ((iVar7 == 0) || (iVar8 == 0)) {\n          *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n        }\n        else {\n          iVar25 = *(int *)(pdVar30 + 0x58);\n          iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25;\n          if (0 < iVar25) {\n            iVar23 = 0;\n            iVar22 = 0;\n            do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);\n          }\n          if (0 < *(int *)(pdVar30 + 3)) {\n            iStack_4e8 = 0;\n            uVar36 = 0;\n            do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));\n          }\n          pdVar18 = pdVar11;\n          iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13);\n          if (iVar7 == 0) {\n            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar30 + 0x65) != 0) {\n            piVar26 = *(int **)(pdVar1 + 6);\n            (**(code **)(puVar28 + 0x20348c))();\n            uVar17 = piVar26[1] + 1;\n            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;\n            piVar26[1] = uVar17;\n            (**(code **)(puVar28 + 0x2035e0))();\n            pdVar18 = pdVar30;\n            iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));\n            if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar37 != iStack_4e4);\n  }\n  if (pIStack_9c != (Image *)**(undefined4 **)(puVar28 + 0x2033d8)) {\n    pcVar29 = *(code **)(puVar28 + 0x20320c);\n    (*pcVar29)();\n    iVar37 = *(int *)(pdVar18 + 1);\n    iVar7 = *(int *)(iVar37 + 0x1c);\n    iVar4 = (**(code **)(pcVar29 + 0x203418))();\n    iVar5 = (**(code **)(pcVar29 + 0x203014))();\n    if (iVar4 == 0) {\n      trap(7);\n    }\n    iVar8 = iVar7 / iVar4;\n    iVar7 = iVar7 % iVar4;\n    if (iVar5 < iVar7) {\n      iVar8 = iVar8 + 1;\n      iVar7 = 0;\n    }\n    iVar7 = iVar8 * iVar5 + iVar7;\n    iVar8 = iVar8 + iVar7;\n    pIVar2 = *(Image **)(pcVar29 + 0x2023d4);\n    if (iVar7 < iVar8) {\n      uVar10 = *(undefined4 *)(pdVar18 + 2);\n      uVar6 = *(undefined4 *)((int)pdVar18 + 0xc);\n      dVar34 = *pdVar18;\n      uVar35 = (ulonglong)*(uint *)(pIVar2[1].magick_filename + 0x390);\n      iVar4 = *(int *)(pcVar29 + 0x2023ec);\n      do {\n        pIVar2 = (Image *)0x1;\n        if (*(int *)((int)pdVar18 + 0x14) != 0) {\n          pfVar16 = (float *)(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6);\n          if (pfVar16 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            pIVar2 = (Image *)0x0;\n          }\n          else {\n            iVar5 = 0;\n            if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }\n            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);\n            if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }\n            pIVar2 = *(Image **)(iVar37 + 0x328);\n            if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar8 != iVar7);\n    }\n    return pIVar2;\n  }\n  return (Image *)**(undefined4 **)(puVar28 + 0x2033d8);\n}\n\n" comment comment comment comment comment (function_definition "Image * TrimImage(Image *image,ExceptionInfo *exception)\n\n{\n  double *pdVar1;\n  Image *pIVar2;\n  size_t sVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  double *pdVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  int iVar15;\n  float *pfVar16;\n  uint uVar17;\n  double *pdVar18;\n  double *pdVar19;\n  float *pfVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int *piVar26;\n  int iVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  double *pdVar30;\n  undefined4 uVar31;\n  double dVar32;\n  double dVar33;\n  double dVar34;\n  ulonglong uVar35;\n  undefined8 uVar36;\n  int iVar37;\n  int iStack_4e8;\n  int iStack_4e4;\n  undefined8 uStack_4a0;\n  undefined8 uStack_2a0;\n  Image *pIStack_9c;\n  Image *pIStack_98;\n  Image *pIStack_94;\n  ExceptionInfo *pEStack_90;\n  size_t local_38;\n  size_t local_34;\n  int local_30;\n  int local_2c;\n  RectangleInfo geometry;\n  \n  pdVar1 = *(double **)PTR___stack_chk_guard_003fa248;\n  if (image == (Image *)0x0) {\n    pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x7b0,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96e,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return pIVar2;\n  }\n  if (image->signature != 0xabacadab) {\n    pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x784,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96f,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return pIVar2;\n  }\n  if (image->debug != MagickFalse) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }\n  (*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,image,exception);\n  geometry.width = local_38;\n  geometry.height = local_34;\n  geometry.x = local_30;\n  geometry.y = local_2c;\n  if ((local_38 == 0) || (local_34 == 0)) {\n    pIVar2 = (Image *)(*(code *)PTR_CloneImage_003fa848)(image,1,1,1);\n    if (pIVar2 != (Image *)0x0) {\n      (pIVar2->background_color).alpha_trait = BlendPixelTrait;\n      *(undefined4 *)((int)&(pIVar2->background_color).alpha + 4) = 0;\n      *(undefined4 *)&(pIVar2->background_color).alpha = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(pIVar2,exception);\n      sVar3 = (image->page).height;\n      (pIVar2->page).width = (image->page).width;\n      (pIVar2->page).height = sVar3;\n      (pIVar2->page).x = -1;\n      (pIVar2->page).y = -1;\n    }\n  }\n  else {\n    geometry.x = local_30 + (image->page).x;\n    geometry.y = local_2c + (image->page).y;\n    pIVar2 = (Image *)(*(code *)PTR_CropImage_003fa0d0)(image,&geometry,exception);\n    if (pIVar2 != (Image *)0x0) {\n      (*(code *)PTR_Update8BIMClipPath_003f9ba0)(pIVar2,image->columns,image->rows,&geometry);\n    }\n  }\n  if (pdVar1 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return pIVar2;\n  }\n  puVar28 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  pIStack_9c = (Image *)**(undefined4 **)(puVar28 + 0x2033d8);\n  pdVar30 = *(double **)(pdVar1 + 2);\n  iStack_4e4 = *(int *)((int)pdVar30 + 0x1c);\n  pIStack_98 = image;\n  pIStack_94 = pIVar2;\n  pEStack_90 = exception;\n  iVar4 = (**(code **)(puVar28 + 0x203ab4))();\n  iVar5 = (**(code **)(puVar28 + 0x2036b0))();\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar37 = iStack_4e4 / iVar4;\n  iStack_4e4 = iStack_4e4 % iVar4;\n  if (iVar5 < iStack_4e4) {\n    iVar37 = iVar37 + 1;\n    iStack_4e4 = 0;\n  }\n  pdVar18 = (double *)(iVar37 * iVar5);\n  iStack_4e4 = (int)pdVar18 + iStack_4e4;\n  iVar37 = iVar37 + iStack_4e4;\n  if (iStack_4e4 < iVar37) {\n    uVar10 = *(undefined4 *)((int)pdVar1 + 0xc);\n    uVar6 = *(undefined4 *)(pdVar1 + 1);\n    iVar5 = *(int *)(pdVar1 + 5);\n    pdVar11 = *(double **)((int)pdVar1 + 0x24);\n    uVar12 = *(undefined4 *)(pdVar1 + 4);\n    uVar13 = *(undefined4 *)((int)pdVar1 + 0x1c);\n    dVar34 = *pdVar1;\n    pdVar19 = *(double **)(pdVar1 + 3);\n    uVar14 = *(uint *)((int)pdVar1 + 0x14);\n    iVar4 = *(int *)(puVar28 + 0x202a88);\n    uVar35 = (ulonglong)*(uint *)(*(int *)(puVar28 + 0x202a70) + 0x4aa8);\n    pdVar18 = pdVar19;\n    do {\n      if (*(int *)((int)pdVar1 + 0x2c) != 0) {\n        iVar7 = (**(code **)(puVar28 + 0x203804))\n                          (uVar12,-((int)uVar14 / 2),iStack_4e4 - ((uint)pdVar19 >> 1),\n                           uVar14 + *(int *)(pdVar30 + 3),pdVar19,uVar13);\n        pdVar18 = pdVar11;\n        iVar8 = (**(code **)(puVar28 + 0x202df8))\n                          (pdVar11,0,iStack_4e4,*(undefined4 *)(iVar5 + 0x18),1,uVar13);\n        if ((iVar7 == 0) || (iVar8 == 0)) {\n          *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n        }\n        else {\n          iVar25 = *(int *)(pdVar30 + 0x58);\n          iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25;\n          if (0 < iVar25) {\n            iVar23 = 0;\n            iVar22 = 0;\n            do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);\n          }\n          if (0 < *(int *)(pdVar30 + 3)) {\n            iStack_4e8 = 0;\n            uVar36 = 0;\n            do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));\n          }\n          pdVar18 = pdVar11;\n          iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13);\n          if (iVar7 == 0) {\n            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar30 + 0x65) != 0) {\n            piVar26 = *(int **)(pdVar1 + 6);\n            (**(code **)(puVar28 + 0x20348c))();\n            uVar17 = piVar26[1] + 1;\n            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;\n            piVar26[1] = uVar17;\n            (**(code **)(puVar28 + 0x2035e0))();\n            pdVar18 = pdVar30;\n            iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));\n            if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar37 != iStack_4e4);\n  }\n  if (pIStack_9c != (Image *)**(undefined4 **)(puVar28 + 0x2033d8)) {\n    pcVar29 = *(code **)(puVar28 + 0x20320c);\n    (*pcVar29)();\n    iVar37 = *(int *)(pdVar18 + 1);\n    iVar7 = *(int *)(iVar37 + 0x1c);\n    iVar4 = (**(code **)(pcVar29 + 0x203418))();\n    iVar5 = (**(code **)(pcVar29 + 0x203014))();\n    if (iVar4 == 0) {\n      trap(7);\n    }\n    iVar8 = iVar7 / iVar4;\n    iVar7 = iVar7 % iVar4;\n    if (iVar5 < iVar7) {\n      iVar8 = iVar8 + 1;\n      iVar7 = 0;\n    }\n    iVar7 = iVar8 * iVar5 + iVar7;\n    iVar8 = iVar8 + iVar7;\n    pIVar2 = *(Image **)(pcVar29 + 0x2023d4);\n    if (iVar7 < iVar8) {\n      uVar10 = *(undefined4 *)(pdVar18 + 2);\n      uVar6 = *(undefined4 *)((int)pdVar18 + 0xc);\n      dVar34 = *pdVar18;\n      uVar35 = (ulonglong)*(uint *)(pIVar2[1].magick_filename + 0x390);\n      iVar4 = *(int *)(pcVar29 + 0x2023ec);\n      do {\n        pIVar2 = (Image *)0x1;\n        if (*(int *)((int)pdVar18 + 0x14) != 0) {\n          pfVar16 = (float *)(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6);\n          if (pfVar16 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            pIVar2 = (Image *)0x0;\n          }\n          else {\n            iVar5 = 0;\n            if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }\n            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);\n            if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }\n            pIVar2 = *(Image **)(iVar37 + 0x328);\n            if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar8 != iVar7);\n    }\n    return pIVar2;\n  }\n  return (Image *)**(undefined4 **)(puVar28 + 0x2033d8);\n}" type_identifier (pointer_declarator "* TrimImage(Image *image,ExceptionInfo *exception)" * (function_declarator "TrimImage(Image *image,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) )))) (compound_statement "{\n  double *pdVar1;\n  Image *pIVar2;\n  size_t sVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  double *pdVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  int iVar15;\n  float *pfVar16;\n  uint uVar17;\n  double *pdVar18;\n  double *pdVar19;\n  float *pfVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  int *piVar26;\n  int iVar27;\n  undefined *puVar28;\n  code *pcVar29;\n  double *pdVar30;\n  undefined4 uVar31;\n  double dVar32;\n  double dVar33;\n  double dVar34;\n  ulonglong uVar35;\n  undefined8 uVar36;\n  int iVar37;\n  int iStack_4e8;\n  int iStack_4e4;\n  undefined8 uStack_4a0;\n  undefined8 uStack_2a0;\n  Image *pIStack_9c;\n  Image *pIStack_98;\n  Image *pIStack_94;\n  ExceptionInfo *pEStack_90;\n  size_t local_38;\n  size_t local_34;\n  int local_30;\n  int local_2c;\n  RectangleInfo geometry;\n  \n  pdVar1 = *(double **)PTR___stack_chk_guard_003fa248;\n  if (image == (Image *)0x0) {\n    pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x7b0,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96e,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return pIVar2;\n  }\n  if (image->signature != 0xabacadab) {\n    pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x784,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96f,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return pIVar2;\n  }\n  if (image->debug != MagickFalse) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }\n  (*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,image,exception);\n  geometry.width = local_38;\n  geometry.height = local_34;\n  geometry.x = local_30;\n  geometry.y = local_2c;\n  if ((local_38 == 0) || (local_34 == 0)) {\n    pIVar2 = (Image *)(*(code *)PTR_CloneImage_003fa848)(image,1,1,1);\n    if (pIVar2 != (Image *)0x0) {\n      (pIVar2->background_color).alpha_trait = BlendPixelTrait;\n      *(undefined4 *)((int)&(pIVar2->background_color).alpha + 4) = 0;\n      *(undefined4 *)&(pIVar2->background_color).alpha = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(pIVar2,exception);\n      sVar3 = (image->page).height;\n      (pIVar2->page).width = (image->page).width;\n      (pIVar2->page).height = sVar3;\n      (pIVar2->page).x = -1;\n      (pIVar2->page).y = -1;\n    }\n  }\n  else {\n    geometry.x = local_30 + (image->page).x;\n    geometry.y = local_2c + (image->page).y;\n    pIVar2 = (Image *)(*(code *)PTR_CropImage_003fa0d0)(image,&geometry,exception);\n    if (pIVar2 != (Image *)0x0) {\n      (*(code *)PTR_Update8BIMClipPath_003f9ba0)(pIVar2,image->columns,image->rows,&geometry);\n    }\n  }\n  if (pdVar1 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return pIVar2;\n  }\n  puVar28 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  pIStack_9c = (Image *)**(undefined4 **)(puVar28 + 0x2033d8);\n  pdVar30 = *(double **)(pdVar1 + 2);\n  iStack_4e4 = *(int *)((int)pdVar30 + 0x1c);\n  pIStack_98 = image;\n  pIStack_94 = pIVar2;\n  pEStack_90 = exception;\n  iVar4 = (**(code **)(puVar28 + 0x203ab4))();\n  iVar5 = (**(code **)(puVar28 + 0x2036b0))();\n  if (iVar4 == 0) {\n    trap(7);\n  }\n  iVar37 = iStack_4e4 / iVar4;\n  iStack_4e4 = iStack_4e4 % iVar4;\n  if (iVar5 < iStack_4e4) {\n    iVar37 = iVar37 + 1;\n    iStack_4e4 = 0;\n  }\n  pdVar18 = (double *)(iVar37 * iVar5);\n  iStack_4e4 = (int)pdVar18 + iStack_4e4;\n  iVar37 = iVar37 + iStack_4e4;\n  if (iStack_4e4 < iVar37) {\n    uVar10 = *(undefined4 *)((int)pdVar1 + 0xc);\n    uVar6 = *(undefined4 *)(pdVar1 + 1);\n    iVar5 = *(int *)(pdVar1 + 5);\n    pdVar11 = *(double **)((int)pdVar1 + 0x24);\n    uVar12 = *(undefined4 *)(pdVar1 + 4);\n    uVar13 = *(undefined4 *)((int)pdVar1 + 0x1c);\n    dVar34 = *pdVar1;\n    pdVar19 = *(double **)(pdVar1 + 3);\n    uVar14 = *(uint *)((int)pdVar1 + 0x14);\n    iVar4 = *(int *)(puVar28 + 0x202a88);\n    uVar35 = (ulonglong)*(uint *)(*(int *)(puVar28 + 0x202a70) + 0x4aa8);\n    pdVar18 = pdVar19;\n    do {\n      if (*(int *)((int)pdVar1 + 0x2c) != 0) {\n        iVar7 = (**(code **)(puVar28 + 0x203804))\n                          (uVar12,-((int)uVar14 / 2),iStack_4e4 - ((uint)pdVar19 >> 1),\n                           uVar14 + *(int *)(pdVar30 + 3),pdVar19,uVar13);\n        pdVar18 = pdVar11;\n        iVar8 = (**(code **)(puVar28 + 0x202df8))\n                          (pdVar11,0,iStack_4e4,*(undefined4 *)(iVar5 + 0x18),1,uVar13);\n        if ((iVar7 == 0) || (iVar8 == 0)) {\n          *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n        }\n        else {\n          iVar25 = *(int *)(pdVar30 + 0x58);\n          iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25;\n          if (0 < iVar25) {\n            iVar23 = 0;\n            iVar22 = 0;\n            do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);\n          }\n          if (0 < *(int *)(pdVar30 + 3)) {\n            iStack_4e8 = 0;\n            uVar36 = 0;\n            do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));\n          }\n          pdVar18 = pdVar11;\n          iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13);\n          if (iVar7 == 0) {\n            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar30 + 0x65) != 0) {\n            piVar26 = *(int **)(pdVar1 + 6);\n            (**(code **)(puVar28 + 0x20348c))();\n            uVar17 = piVar26[1] + 1;\n            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;\n            piVar26[1] = uVar17;\n            (**(code **)(puVar28 + 0x2035e0))();\n            pdVar18 = pdVar30;\n            iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));\n            if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar37 != iStack_4e4);\n  }\n  if (pIStack_9c != (Image *)**(undefined4 **)(puVar28 + 0x2033d8)) {\n    pcVar29 = *(code **)(puVar28 + 0x20320c);\n    (*pcVar29)();\n    iVar37 = *(int *)(pdVar18 + 1);\n    iVar7 = *(int *)(iVar37 + 0x1c);\n    iVar4 = (**(code **)(pcVar29 + 0x203418))();\n    iVar5 = (**(code **)(pcVar29 + 0x203014))();\n    if (iVar4 == 0) {\n      trap(7);\n    }\n    iVar8 = iVar7 / iVar4;\n    iVar7 = iVar7 % iVar4;\n    if (iVar5 < iVar7) {\n      iVar8 = iVar8 + 1;\n      iVar7 = 0;\n    }\n    iVar7 = iVar8 * iVar5 + iVar7;\n    iVar8 = iVar8 + iVar7;\n    pIVar2 = *(Image **)(pcVar29 + 0x2023d4);\n    if (iVar7 < iVar8) {\n      uVar10 = *(undefined4 *)(pdVar18 + 2);\n      uVar6 = *(undefined4 *)((int)pdVar18 + 0xc);\n      dVar34 = *pdVar18;\n      uVar35 = (ulonglong)*(uint *)(pIVar2[1].magick_filename + 0x390);\n      iVar4 = *(int *)(pcVar29 + 0x2023ec);\n      do {\n        pIVar2 = (Image *)0x1;\n        if (*(int *)((int)pdVar18 + 0x14) != 0) {\n          pfVar16 = (float *)(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6);\n          if (pfVar16 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            pIVar2 = (Image *)0x0;\n          }\n          else {\n            iVar5 = 0;\n            if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }\n            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);\n            if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }\n            pIVar2 = *(Image **)(iVar37 + 0x328);\n            if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar8 != iVar7);\n    }\n    return pIVar2;\n  }\n  return (Image *)**(undefined4 **)(puVar28 + 0x2033d8);\n}" { (declaration "double *pdVar1;" primitive_type (pointer_declarator "*pdVar1" * identifier) ;) (declaration "Image *pIVar2;" type_identifier (pointer_declarator "*pIVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "double *pdVar11;" primitive_type (pointer_declarator "*pdVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "float *pfVar16;" primitive_type (pointer_declarator "*pfVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "double *pdVar18;" primitive_type (pointer_declarator "*pdVar18" * identifier) ;) (declaration "double *pdVar19;" primitive_type (pointer_declarator "*pdVar19" * identifier) ;) (declaration "float *pfVar20;" primitive_type (pointer_declarator "*pfVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int *piVar26;" primitive_type (pointer_declarator "*piVar26" * identifier) ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "undefined *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "double *pdVar30;" primitive_type (pointer_declarator "*pdVar30" * identifier) ;) (declaration "undefined4 uVar31;" type_identifier identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "double dVar33;" primitive_type identifier ;) (declaration "double dVar34;" primitive_type identifier ;) (declaration "ulonglong uVar35;" type_identifier identifier ;) (declaration "undefined8 uVar36;" type_identifier identifier ;) (declaration "int iVar37;" primitive_type identifier ;) (declaration "int iStack_4e8;" primitive_type identifier ;) (declaration "int iStack_4e4;" primitive_type identifier ;) (declaration "undefined8 uStack_4a0;" type_identifier identifier ;) (declaration "undefined8 uStack_2a0;" type_identifier identifier ;) (declaration "Image *pIStack_9c;" type_identifier (pointer_declarator "*pIStack_9c" * identifier) ;) (declaration "Image *pIStack_98;" type_identifier (pointer_declarator "*pIStack_98" * identifier) ;) (declaration "Image *pIStack_94;" type_identifier (pointer_declarator "*pIStack_94" * identifier) ;) (declaration "ExceptionInfo *pEStack_90;" type_identifier (pointer_declarator "*pEStack_90" * identifier) ;) (declaration "size_t local_38;" primitive_type identifier ;) (declaration "size_t local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "RectangleInfo geometry;" type_identifier identifier ;) (expression_statement "pdVar1 = *(double **)PTR___stack_chk_guard_003fa248;" (assignment_expression "pdVar1 = *(double **)PTR___stack_chk_guard_003fa248" identifier = (pointer_expression "*(double **)PTR___stack_chk_guard_003fa248" * (cast_expression "(double **)PTR___stack_chk_guard_003fa248" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (image == (Image *)0x0) {\n    pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x7b0,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96e,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return pIVar2;\n  }" if (parenthesized_expression "(image == (Image *)0x0)" ( (binary_expression "image == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x7b0,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96e,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return pIVar2;\n  }" { (expression_statement "pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x7b0,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96e,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);" (assignment_expression "pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x7b0,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96e,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" identifier = (cast_expression "(Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x7b0,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96e,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x7b0,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96e,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_003f98e4 + -0x7b0,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96e,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" ( (binary_expression "PTR_UINT_003f98e4 + -0x7b0" identifier + number_literal) , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8" identifier + number_literal) ))))) ;) (return_statement "return pIVar2;" return identifier ;) })) (if_statement "if (image->signature != 0xabacadab) {\n    pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x784,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96f,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return pIVar2;\n  }" if (parenthesized_expression "(image->signature != 0xabacadab)" ( (binary_expression "image->signature != 0xabacadab" (field_expression "image->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x784,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96f,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return pIVar2;\n  }" { (expression_statement "pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x784,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96f,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);" (assignment_expression "pIVar2 = (Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x784,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96f,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" identifier = (cast_expression "(Image *)(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x784,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96f,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003fa620)\n                                (PTR_UINT_003f98e4 + -0x784,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96f,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_003f98e4 + -0x784,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,0x96f,\n                                 PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" ( (binary_expression "PTR_UINT_003f98e4 + -0x784" identifier + number_literal) , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8" identifier + number_literal) ))))) ;) (return_statement "return pIVar2;" return identifier ;) })) (if_statement "if (image->debug != MagickFalse) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }" if (parenthesized_expression "(image->debug != MagickFalse)" ( (binary_expression "image->debug != MagickFalse" (field_expression "image->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);" (call_expression "(*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003fa1f8)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003fa1f8" * (cast_expression "(code *)PTR_LogMagickEvent_003fa1f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971)" ( number_literal , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4" identifier + number_literal) , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "(*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,image,exception);" (call_expression "(*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,image,exception)" (parenthesized_expression "(*(code *)PTR_GetImageBoundingBox_003fa9a0)" ( (pointer_expression "*(code *)PTR_GetImageBoundingBox_003fa9a0" * (cast_expression "(code *)PTR_GetImageBoundingBox_003fa9a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_38,image,exception)" ( (pointer_expression "&local_38" & identifier) , identifier , identifier ))) ;) (expression_statement "geometry.width = local_38;" (assignment_expression "geometry.width = local_38" (field_expression "geometry.width" identifier . field_identifier) = identifier) ;) (expression_statement "geometry.height = local_34;" (assignment_expression "geometry.height = local_34" (field_expression "geometry.height" identifier . field_identifier) = identifier) ;) (expression_statement "geometry.x = local_30;" (assignment_expression "geometry.x = local_30" (field_expression "geometry.x" identifier . field_identifier) = identifier) ;) (expression_statement "geometry.y = local_2c;" (assignment_expression "geometry.y = local_2c" (field_expression "geometry.y" identifier . field_identifier) = identifier) ;) (if_statement "if ((local_38 == 0) || (local_34 == 0)) {\n    pIVar2 = (Image *)(*(code *)PTR_CloneImage_003fa848)(image,1,1,1);\n    if (pIVar2 != (Image *)0x0) {\n      (pIVar2->background_color).alpha_trait = BlendPixelTrait;\n      *(undefined4 *)((int)&(pIVar2->background_color).alpha + 4) = 0;\n      *(undefined4 *)&(pIVar2->background_color).alpha = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(pIVar2,exception);\n      sVar3 = (image->page).height;\n      (pIVar2->page).width = (image->page).width;\n      (pIVar2->page).height = sVar3;\n      (pIVar2->page).x = -1;\n      (pIVar2->page).y = -1;\n    }\n  }\n  else {\n    geometry.x = local_30 + (image->page).x;\n    geometry.y = local_2c + (image->page).y;\n    pIVar2 = (Image *)(*(code *)PTR_CropImage_003fa0d0)(image,&geometry,exception);\n    if (pIVar2 != (Image *)0x0) {\n      (*(code *)PTR_Update8BIMClipPath_003f9ba0)(pIVar2,image->columns,image->rows,&geometry);\n    }\n  }" if (parenthesized_expression "((local_38 == 0) || (local_34 == 0))" ( (binary_expression "(local_38 == 0) || (local_34 == 0)" (parenthesized_expression "(local_38 == 0)" ( (binary_expression "local_38 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    pIVar2 = (Image *)(*(code *)PTR_CloneImage_003fa848)(image,1,1,1);\n    if (pIVar2 != (Image *)0x0) {\n      (pIVar2->background_color).alpha_trait = BlendPixelTrait;\n      *(undefined4 *)((int)&(pIVar2->background_color).alpha + 4) = 0;\n      *(undefined4 *)&(pIVar2->background_color).alpha = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(pIVar2,exception);\n      sVar3 = (image->page).height;\n      (pIVar2->page).width = (image->page).width;\n      (pIVar2->page).height = sVar3;\n      (pIVar2->page).x = -1;\n      (pIVar2->page).y = -1;\n    }\n  }" { (expression_statement "pIVar2 = (Image *)(*(code *)PTR_CloneImage_003fa848)(image,1,1,1);" (assignment_expression "pIVar2 = (Image *)(*(code *)PTR_CloneImage_003fa848)(image,1,1,1)" identifier = (cast_expression "(Image *)(*(code *)PTR_CloneImage_003fa848)(image,1,1,1)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_CloneImage_003fa848)(image,1,1,1)" (parenthesized_expression "(*(code *)PTR_CloneImage_003fa848)" ( (pointer_expression "*(code *)PTR_CloneImage_003fa848" * (cast_expression "(code *)PTR_CloneImage_003fa848" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,1,1,1)" ( identifier , number_literal , number_literal , number_literal ))))) ;) (if_statement "if (pIVar2 != (Image *)0x0) {\n      (pIVar2->background_color).alpha_trait = BlendPixelTrait;\n      *(undefined4 *)((int)&(pIVar2->background_color).alpha + 4) = 0;\n      *(undefined4 *)&(pIVar2->background_color).alpha = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(pIVar2,exception);\n      sVar3 = (image->page).height;\n      (pIVar2->page).width = (image->page).width;\n      (pIVar2->page).height = sVar3;\n      (pIVar2->page).x = -1;\n      (pIVar2->page).y = -1;\n    }" if (parenthesized_expression "(pIVar2 != (Image *)0x0)" ( (binary_expression "pIVar2 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (pIVar2->background_color).alpha_trait = BlendPixelTrait;\n      *(undefined4 *)((int)&(pIVar2->background_color).alpha + 4) = 0;\n      *(undefined4 *)&(pIVar2->background_color).alpha = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(pIVar2,exception);\n      sVar3 = (image->page).height;\n      (pIVar2->page).width = (image->page).width;\n      (pIVar2->page).height = sVar3;\n      (pIVar2->page).x = -1;\n      (pIVar2->page).y = -1;\n    }" { (expression_statement "(pIVar2->background_color).alpha_trait = BlendPixelTrait;" (assignment_expression "(pIVar2->background_color).alpha_trait = BlendPixelTrait" (field_expression "(pIVar2->background_color).alpha_trait" (parenthesized_expression "(pIVar2->background_color)" ( (field_expression "pIVar2->background_color" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(pIVar2->background_color).alpha + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pIVar2->background_color).alpha + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pIVar2->background_color).alpha + 4)" * (cast_expression "(undefined4 *)((int)&(pIVar2->background_color).alpha + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar2->background_color).alpha + 4)" ( (binary_expression "(int)&(pIVar2->background_color).alpha + 4" (cast_expression "(int)&(pIVar2->background_color).alpha" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar2->background_color).alpha" & (field_expression "(pIVar2->background_color).alpha" (parenthesized_expression "(pIVar2->background_color)" ( (field_expression "pIVar2->background_color" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pIVar2->background_color).alpha = 0;" (assignment_expression "*(undefined4 *)&(pIVar2->background_color).alpha = 0" (pointer_expression "*(undefined4 *)&(pIVar2->background_color).alpha" * (cast_expression "(undefined4 *)&(pIVar2->background_color).alpha" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pIVar2->background_color).alpha" & (field_expression "(pIVar2->background_color).alpha" (parenthesized_expression "(pIVar2->background_color)" ( (field_expression "pIVar2->background_color" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "(*(code *)PTR_SetImageBackgroundColor_003f9ea8)(pIVar2,exception);" (call_expression "(*(code *)PTR_SetImageBackgroundColor_003f9ea8)(pIVar2,exception)" (parenthesized_expression "(*(code *)PTR_SetImageBackgroundColor_003f9ea8)" ( (pointer_expression "*(code *)PTR_SetImageBackgroundColor_003f9ea8" * (cast_expression "(code *)PTR_SetImageBackgroundColor_003f9ea8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar2,exception)" ( identifier , identifier ))) ;) (expression_statement "sVar3 = (image->page).height;" (assignment_expression "sVar3 = (image->page).height" identifier = (field_expression "(image->page).height" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(pIVar2->page).width = (image->page).width;" (assignment_expression "(pIVar2->page).width = (image->page).width" (field_expression "(pIVar2->page).width" (parenthesized_expression "(pIVar2->page)" ( (field_expression "pIVar2->page" identifier -> field_identifier) )) . field_identifier) = (field_expression "(image->page).width" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(pIVar2->page).height = sVar3;" (assignment_expression "(pIVar2->page).height = sVar3" (field_expression "(pIVar2->page).height" (parenthesized_expression "(pIVar2->page)" ( (field_expression "pIVar2->page" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pIVar2->page).x = -1;" (assignment_expression "(pIVar2->page).x = -1" (field_expression "(pIVar2->page).x" (parenthesized_expression "(pIVar2->page)" ( (field_expression "pIVar2->page" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pIVar2->page).y = -1;" (assignment_expression "(pIVar2->page).y = -1" (field_expression "(pIVar2->page).y" (parenthesized_expression "(pIVar2->page)" ( (field_expression "pIVar2->page" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) }) (else_clause "else {\n    geometry.x = local_30 + (image->page).x;\n    geometry.y = local_2c + (image->page).y;\n    pIVar2 = (Image *)(*(code *)PTR_CropImage_003fa0d0)(image,&geometry,exception);\n    if (pIVar2 != (Image *)0x0) {\n      (*(code *)PTR_Update8BIMClipPath_003f9ba0)(pIVar2,image->columns,image->rows,&geometry);\n    }\n  }" else (compound_statement "{\n    geometry.x = local_30 + (image->page).x;\n    geometry.y = local_2c + (image->page).y;\n    pIVar2 = (Image *)(*(code *)PTR_CropImage_003fa0d0)(image,&geometry,exception);\n    if (pIVar2 != (Image *)0x0) {\n      (*(code *)PTR_Update8BIMClipPath_003f9ba0)(pIVar2,image->columns,image->rows,&geometry);\n    }\n  }" { (expression_statement "geometry.x = local_30 + (image->page).x;" (assignment_expression "geometry.x = local_30 + (image->page).x" (field_expression "geometry.x" identifier . field_identifier) = (binary_expression "local_30 + (image->page).x" identifier + (field_expression "(image->page).x" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "geometry.y = local_2c + (image->page).y;" (assignment_expression "geometry.y = local_2c + (image->page).y" (field_expression "geometry.y" identifier . field_identifier) = (binary_expression "local_2c + (image->page).y" identifier + (field_expression "(image->page).y" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pIVar2 = (Image *)(*(code *)PTR_CropImage_003fa0d0)(image,&geometry,exception);" (assignment_expression "pIVar2 = (Image *)(*(code *)PTR_CropImage_003fa0d0)(image,&geometry,exception)" identifier = (cast_expression "(Image *)(*(code *)PTR_CropImage_003fa0d0)(image,&geometry,exception)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_CropImage_003fa0d0)(image,&geometry,exception)" (parenthesized_expression "(*(code *)PTR_CropImage_003fa0d0)" ( (pointer_expression "*(code *)PTR_CropImage_003fa0d0" * (cast_expression "(code *)PTR_CropImage_003fa0d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,&geometry,exception)" ( identifier , (pointer_expression "&geometry" & identifier) , identifier ))))) ;) (if_statement "if (pIVar2 != (Image *)0x0) {\n      (*(code *)PTR_Update8BIMClipPath_003f9ba0)(pIVar2,image->columns,image->rows,&geometry);\n    }" if (parenthesized_expression "(pIVar2 != (Image *)0x0)" ( (binary_expression "pIVar2 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_Update8BIMClipPath_003f9ba0)(pIVar2,image->columns,image->rows,&geometry);\n    }" { (expression_statement "(*(code *)PTR_Update8BIMClipPath_003f9ba0)(pIVar2,image->columns,image->rows,&geometry);" (call_expression "(*(code *)PTR_Update8BIMClipPath_003f9ba0)(pIVar2,image->columns,image->rows,&geometry)" (parenthesized_expression "(*(code *)PTR_Update8BIMClipPath_003f9ba0)" ( (pointer_expression "*(code *)PTR_Update8BIMClipPath_003f9ba0" * (cast_expression "(code *)PTR_Update8BIMClipPath_003f9ba0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar2,image->columns,image->rows,&geometry)" ( identifier , (field_expression "image->columns" identifier -> field_identifier) , (field_expression "image->rows" identifier -> field_identifier) , (pointer_expression "&geometry" & identifier) ))) ;) })) }))) (if_statement "if (pdVar1 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return pIVar2;\n  }" if (parenthesized_expression "(pdVar1 == *(double **)PTR___stack_chk_guard_003fa248)" ( (binary_expression "pdVar1 == *(double **)PTR___stack_chk_guard_003fa248" identifier == (pointer_expression "*(double **)PTR___stack_chk_guard_003fa248" * (cast_expression "(double **)PTR___stack_chk_guard_003fa248" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return pIVar2;\n  }" { (return_statement "return pIVar2;" return identifier ;) })) (expression_statement "puVar28 = PTR___stack_chk_fail_003fa07c;" (assignment_expression "puVar28 = PTR___stack_chk_fail_003fa07c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003fa07c)();" (call_expression "(*(code *)PTR___stack_chk_fail_003fa07c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003fa07c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003fa07c" * (cast_expression "(code *)PTR___stack_chk_fail_003fa07c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pIStack_9c = (Image *)**(undefined4 **)(puVar28 + 0x2033d8);" (assignment_expression "pIStack_9c = (Image *)**(undefined4 **)(puVar28 + 0x2033d8)" identifier = (cast_expression "(Image *)**(undefined4 **)(puVar28 + 0x2033d8)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar28 + 0x2033d8)" * (pointer_expression "*(undefined4 **)(puVar28 + 0x2033d8)" * (cast_expression "(undefined4 **)(puVar28 + 0x2033d8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x2033d8)" ( (binary_expression "puVar28 + 0x2033d8" identifier + number_literal) ))))))) ;) (expression_statement "pdVar30 = *(double **)(pdVar1 + 2);" (assignment_expression "pdVar30 = *(double **)(pdVar1 + 2)" identifier = (pointer_expression "*(double **)(pdVar1 + 2)" * (cast_expression "(double **)(pdVar1 + 2)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar1 + 2)" ( (binary_expression "pdVar1 + 2" identifier + number_literal) ))))) ;) (expression_statement "iStack_4e4 = *(int *)((int)pdVar30 + 0x1c);" (assignment_expression "iStack_4e4 = *(int *)((int)pdVar30 + 0x1c)" identifier = (pointer_expression "*(int *)((int)pdVar30 + 0x1c)" * (cast_expression "(int *)((int)pdVar30 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + 0x1c)" ( (binary_expression "(int)pdVar30 + 0x1c" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pIStack_98 = image;" (assignment_expression "pIStack_98 = image" identifier = identifier) ;) (expression_statement "pIStack_94 = pIVar2;" (assignment_expression "pIStack_94 = pIVar2" identifier = identifier) ;) (expression_statement "pEStack_90 = exception;" (assignment_expression "pEStack_90 = exception" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(puVar28 + 0x203ab4))();" (assignment_expression "iVar4 = (**(code **)(puVar28 + 0x203ab4))()" identifier = (call_expression "(**(code **)(puVar28 + 0x203ab4))()" (parenthesized_expression "(**(code **)(puVar28 + 0x203ab4))" ( (pointer_expression "**(code **)(puVar28 + 0x203ab4)" * (pointer_expression "*(code **)(puVar28 + 0x203ab4)" * (cast_expression "(code **)(puVar28 + 0x203ab4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x203ab4)" ( (binary_expression "puVar28 + 0x203ab4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar5 = (**(code **)(puVar28 + 0x2036b0))();" (assignment_expression "iVar5 = (**(code **)(puVar28 + 0x2036b0))()" identifier = (call_expression "(**(code **)(puVar28 + 0x2036b0))()" (parenthesized_expression "(**(code **)(puVar28 + 0x2036b0))" ( (pointer_expression "**(code **)(puVar28 + 0x2036b0)" * (pointer_expression "*(code **)(puVar28 + 0x2036b0)" * (cast_expression "(code **)(puVar28 + 0x2036b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x2036b0)" ( (binary_expression "puVar28 + 0x2036b0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar37 = iStack_4e4 / iVar4;" (assignment_expression "iVar37 = iStack_4e4 / iVar4" identifier = (binary_expression "iStack_4e4 / iVar4" identifier / identifier)) ;) (expression_statement "iStack_4e4 = iStack_4e4 % iVar4;" (assignment_expression "iStack_4e4 = iStack_4e4 % iVar4" identifier = (binary_expression "iStack_4e4 % iVar4" identifier % identifier)) ;) (if_statement "if (iVar5 < iStack_4e4) {\n    iVar37 = iVar37 + 1;\n    iStack_4e4 = 0;\n  }" if (parenthesized_expression "(iVar5 < iStack_4e4)" ( (binary_expression "iVar5 < iStack_4e4" identifier < identifier) )) (compound_statement "{\n    iVar37 = iVar37 + 1;\n    iStack_4e4 = 0;\n  }" { (expression_statement "iVar37 = iVar37 + 1;" (assignment_expression "iVar37 = iVar37 + 1" identifier = (binary_expression "iVar37 + 1" identifier + number_literal)) ;) (expression_statement "iStack_4e4 = 0;" (assignment_expression "iStack_4e4 = 0" identifier = number_literal) ;) })) (expression_statement "pdVar18 = (double *)(iVar37 * iVar5);" (assignment_expression "pdVar18 = (double *)(iVar37 * iVar5)" identifier = (cast_expression "(double *)(iVar37 * iVar5)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 * iVar5)" ( (binary_expression "iVar37 * iVar5" identifier * identifier) )))) ;) (expression_statement "iStack_4e4 = (int)pdVar18 + iStack_4e4;" (assignment_expression "iStack_4e4 = (int)pdVar18 + iStack_4e4" identifier = (binary_expression "(int)pdVar18 + iStack_4e4" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "iVar37 = iVar37 + iStack_4e4;" (assignment_expression "iVar37 = iVar37 + iStack_4e4" identifier = (binary_expression "iVar37 + iStack_4e4" identifier + identifier)) ;) (if_statement "if (iStack_4e4 < iVar37) {\n    uVar10 = *(undefined4 *)((int)pdVar1 + 0xc);\n    uVar6 = *(undefined4 *)(pdVar1 + 1);\n    iVar5 = *(int *)(pdVar1 + 5);\n    pdVar11 = *(double **)((int)pdVar1 + 0x24);\n    uVar12 = *(undefined4 *)(pdVar1 + 4);\n    uVar13 = *(undefined4 *)((int)pdVar1 + 0x1c);\n    dVar34 = *pdVar1;\n    pdVar19 = *(double **)(pdVar1 + 3);\n    uVar14 = *(uint *)((int)pdVar1 + 0x14);\n    iVar4 = *(int *)(puVar28 + 0x202a88);\n    uVar35 = (ulonglong)*(uint *)(*(int *)(puVar28 + 0x202a70) + 0x4aa8);\n    pdVar18 = pdVar19;\n    do {\n      if (*(int *)((int)pdVar1 + 0x2c) != 0) {\n        iVar7 = (**(code **)(puVar28 + 0x203804))\n                          (uVar12,-((int)uVar14 / 2),iStack_4e4 - ((uint)pdVar19 >> 1),\n                           uVar14 + *(int *)(pdVar30 + 3),pdVar19,uVar13);\n        pdVar18 = pdVar11;\n        iVar8 = (**(code **)(puVar28 + 0x202df8))\n                          (pdVar11,0,iStack_4e4,*(undefined4 *)(iVar5 + 0x18),1,uVar13);\n        if ((iVar7 == 0) || (iVar8 == 0)) {\n          *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n        }\n        else {\n          iVar25 = *(int *)(pdVar30 + 0x58);\n          iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25;\n          if (0 < iVar25) {\n            iVar23 = 0;\n            iVar22 = 0;\n            do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);\n          }\n          if (0 < *(int *)(pdVar30 + 3)) {\n            iStack_4e8 = 0;\n            uVar36 = 0;\n            do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));\n          }\n          pdVar18 = pdVar11;\n          iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13);\n          if (iVar7 == 0) {\n            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar30 + 0x65) != 0) {\n            piVar26 = *(int **)(pdVar1 + 6);\n            (**(code **)(puVar28 + 0x20348c))();\n            uVar17 = piVar26[1] + 1;\n            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;\n            piVar26[1] = uVar17;\n            (**(code **)(puVar28 + 0x2035e0))();\n            pdVar18 = pdVar30;\n            iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));\n            if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar37 != iStack_4e4);\n  }" if (parenthesized_expression "(iStack_4e4 < iVar37)" ( (binary_expression "iStack_4e4 < iVar37" identifier < identifier) )) (compound_statement "{\n    uVar10 = *(undefined4 *)((int)pdVar1 + 0xc);\n    uVar6 = *(undefined4 *)(pdVar1 + 1);\n    iVar5 = *(int *)(pdVar1 + 5);\n    pdVar11 = *(double **)((int)pdVar1 + 0x24);\n    uVar12 = *(undefined4 *)(pdVar1 + 4);\n    uVar13 = *(undefined4 *)((int)pdVar1 + 0x1c);\n    dVar34 = *pdVar1;\n    pdVar19 = *(double **)(pdVar1 + 3);\n    uVar14 = *(uint *)((int)pdVar1 + 0x14);\n    iVar4 = *(int *)(puVar28 + 0x202a88);\n    uVar35 = (ulonglong)*(uint *)(*(int *)(puVar28 + 0x202a70) + 0x4aa8);\n    pdVar18 = pdVar19;\n    do {\n      if (*(int *)((int)pdVar1 + 0x2c) != 0) {\n        iVar7 = (**(code **)(puVar28 + 0x203804))\n                          (uVar12,-((int)uVar14 / 2),iStack_4e4 - ((uint)pdVar19 >> 1),\n                           uVar14 + *(int *)(pdVar30 + 3),pdVar19,uVar13);\n        pdVar18 = pdVar11;\n        iVar8 = (**(code **)(puVar28 + 0x202df8))\n                          (pdVar11,0,iStack_4e4,*(undefined4 *)(iVar5 + 0x18),1,uVar13);\n        if ((iVar7 == 0) || (iVar8 == 0)) {\n          *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n        }\n        else {\n          iVar25 = *(int *)(pdVar30 + 0x58);\n          iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25;\n          if (0 < iVar25) {\n            iVar23 = 0;\n            iVar22 = 0;\n            do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);\n          }\n          if (0 < *(int *)(pdVar30 + 3)) {\n            iStack_4e8 = 0;\n            uVar36 = 0;\n            do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));\n          }\n          pdVar18 = pdVar11;\n          iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13);\n          if (iVar7 == 0) {\n            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar30 + 0x65) != 0) {\n            piVar26 = *(int **)(pdVar1 + 6);\n            (**(code **)(puVar28 + 0x20348c))();\n            uVar17 = piVar26[1] + 1;\n            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;\n            piVar26[1] = uVar17;\n            (**(code **)(puVar28 + 0x2035e0))();\n            pdVar18 = pdVar30;\n            iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));\n            if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar37 != iStack_4e4);\n  }" { (expression_statement "uVar10 = *(undefined4 *)((int)pdVar1 + 0xc);" (assignment_expression "uVar10 = *(undefined4 *)((int)pdVar1 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar1 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar1 + 0xc)" ( (binary_expression "(int)pdVar1 + 0xc" (cast_expression "(int)pdVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar6 = *(undefined4 *)(pdVar1 + 1);" (assignment_expression "uVar6 = *(undefined4 *)(pdVar1 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar1 + 1)" * (cast_expression "(undefined4 *)(pdVar1 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar1 + 1)" ( (binary_expression "pdVar1 + 1" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pdVar1 + 5);" (assignment_expression "iVar5 = *(int *)(pdVar1 + 5)" identifier = (pointer_expression "*(int *)(pdVar1 + 5)" * (cast_expression "(int *)(pdVar1 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar1 + 5)" ( (binary_expression "pdVar1 + 5" identifier + number_literal) ))))) ;) (expression_statement "pdVar11 = *(double **)((int)pdVar1 + 0x24);" (assignment_expression "pdVar11 = *(double **)((int)pdVar1 + 0x24)" identifier = (pointer_expression "*(double **)((int)pdVar1 + 0x24)" * (cast_expression "(double **)((int)pdVar1 + 0x24)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdVar1 + 0x24)" ( (binary_expression "(int)pdVar1 + 0x24" (cast_expression "(int)pdVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(pdVar1 + 4);" (assignment_expression "uVar12 = *(undefined4 *)(pdVar1 + 4)" identifier = (pointer_expression "*(undefined4 *)(pdVar1 + 4)" * (cast_expression "(undefined4 *)(pdVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar1 + 4)" ( (binary_expression "pdVar1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = *(undefined4 *)((int)pdVar1 + 0x1c);" (assignment_expression "uVar13 = *(undefined4 *)((int)pdVar1 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar1 + 0x1c)" * (cast_expression "(undefined4 *)((int)pdVar1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar1 + 0x1c)" ( (binary_expression "(int)pdVar1 + 0x1c" (cast_expression "(int)pdVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar34 = *pdVar1;" (assignment_expression "dVar34 = *pdVar1" identifier = (pointer_expression "*pdVar1" * identifier)) ;) (expression_statement "pdVar19 = *(double **)(pdVar1 + 3);" (assignment_expression "pdVar19 = *(double **)(pdVar1 + 3)" identifier = (pointer_expression "*(double **)(pdVar1 + 3)" * (cast_expression "(double **)(pdVar1 + 3)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar1 + 3)" ( (binary_expression "pdVar1 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(uint *)((int)pdVar1 + 0x14);" (assignment_expression "uVar14 = *(uint *)((int)pdVar1 + 0x14)" identifier = (pointer_expression "*(uint *)((int)pdVar1 + 0x14)" * (cast_expression "(uint *)((int)pdVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar1 + 0x14)" ( (binary_expression "(int)pdVar1 + 0x14" (cast_expression "(int)pdVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(puVar28 + 0x202a88);" (assignment_expression "iVar4 = *(int *)(puVar28 + 0x202a88)" identifier = (pointer_expression "*(int *)(puVar28 + 0x202a88)" * (cast_expression "(int *)(puVar28 + 0x202a88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x202a88)" ( (binary_expression "puVar28 + 0x202a88" identifier + number_literal) ))))) ;) (expression_statement "uVar35 = (ulonglong)*(uint *)(*(int *)(puVar28 + 0x202a70) + 0x4aa8);" (assignment_expression "uVar35 = (ulonglong)*(uint *)(*(int *)(puVar28 + 0x202a70) + 0x4aa8)" identifier = (binary_expression "(ulonglong)*(uint *)(*(int *)(puVar28 + 0x202a70) + 0x4aa8)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(*(int *)(puVar28 + 0x202a70) + 0x4aa8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar28 + 0x202a70) + 0x4aa8)" ( (binary_expression "*(int *)(puVar28 + 0x202a70) + 0x4aa8" (pointer_expression "*(int *)(puVar28 + 0x202a70)" * (cast_expression "(int *)(puVar28 + 0x202a70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x202a70)" ( (binary_expression "puVar28 + 0x202a70" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pdVar18 = pdVar19;" (assignment_expression "pdVar18 = pdVar19" identifier = identifier) ;) (do_statement "do {\n      if (*(int *)((int)pdVar1 + 0x2c) != 0) {\n        iVar7 = (**(code **)(puVar28 + 0x203804))\n                          (uVar12,-((int)uVar14 / 2),iStack_4e4 - ((uint)pdVar19 >> 1),\n                           uVar14 + *(int *)(pdVar30 + 3),pdVar19,uVar13);\n        pdVar18 = pdVar11;\n        iVar8 = (**(code **)(puVar28 + 0x202df8))\n                          (pdVar11,0,iStack_4e4,*(undefined4 *)(iVar5 + 0x18),1,uVar13);\n        if ((iVar7 == 0) || (iVar8 == 0)) {\n          *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n        }\n        else {\n          iVar25 = *(int *)(pdVar30 + 0x58);\n          iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25;\n          if (0 < iVar25) {\n            iVar23 = 0;\n            iVar22 = 0;\n            do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);\n          }\n          if (0 < *(int *)(pdVar30 + 3)) {\n            iStack_4e8 = 0;\n            uVar36 = 0;\n            do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));\n          }\n          pdVar18 = pdVar11;\n          iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13);\n          if (iVar7 == 0) {\n            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar30 + 0x65) != 0) {\n            piVar26 = *(int **)(pdVar1 + 6);\n            (**(code **)(puVar28 + 0x20348c))();\n            uVar17 = piVar26[1] + 1;\n            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;\n            piVar26[1] = uVar17;\n            (**(code **)(puVar28 + 0x2035e0))();\n            pdVar18 = pdVar30;\n            iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));\n            if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar37 != iStack_4e4);" do (compound_statement "{\n      if (*(int *)((int)pdVar1 + 0x2c) != 0) {\n        iVar7 = (**(code **)(puVar28 + 0x203804))\n                          (uVar12,-((int)uVar14 / 2),iStack_4e4 - ((uint)pdVar19 >> 1),\n                           uVar14 + *(int *)(pdVar30 + 3),pdVar19,uVar13);\n        pdVar18 = pdVar11;\n        iVar8 = (**(code **)(puVar28 + 0x202df8))\n                          (pdVar11,0,iStack_4e4,*(undefined4 *)(iVar5 + 0x18),1,uVar13);\n        if ((iVar7 == 0) || (iVar8 == 0)) {\n          *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n        }\n        else {\n          iVar25 = *(int *)(pdVar30 + 0x58);\n          iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25;\n          if (0 < iVar25) {\n            iVar23 = 0;\n            iVar22 = 0;\n            do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);\n          }\n          if (0 < *(int *)(pdVar30 + 3)) {\n            iStack_4e8 = 0;\n            uVar36 = 0;\n            do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));\n          }\n          pdVar18 = pdVar11;\n          iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13);\n          if (iVar7 == 0) {\n            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar30 + 0x65) != 0) {\n            piVar26 = *(int **)(pdVar1 + 6);\n            (**(code **)(puVar28 + 0x20348c))();\n            uVar17 = piVar26[1] + 1;\n            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;\n            piVar26[1] = uVar17;\n            (**(code **)(puVar28 + 0x2035e0))();\n            pdVar18 = pdVar30;\n            iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));\n            if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    }" { (if_statement "if (*(int *)((int)pdVar1 + 0x2c) != 0) {\n        iVar7 = (**(code **)(puVar28 + 0x203804))\n                          (uVar12,-((int)uVar14 / 2),iStack_4e4 - ((uint)pdVar19 >> 1),\n                           uVar14 + *(int *)(pdVar30 + 3),pdVar19,uVar13);\n        pdVar18 = pdVar11;\n        iVar8 = (**(code **)(puVar28 + 0x202df8))\n                          (pdVar11,0,iStack_4e4,*(undefined4 *)(iVar5 + 0x18),1,uVar13);\n        if ((iVar7 == 0) || (iVar8 == 0)) {\n          *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n        }\n        else {\n          iVar25 = *(int *)(pdVar30 + 0x58);\n          iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25;\n          if (0 < iVar25) {\n            iVar23 = 0;\n            iVar22 = 0;\n            do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);\n          }\n          if (0 < *(int *)(pdVar30 + 3)) {\n            iStack_4e8 = 0;\n            uVar36 = 0;\n            do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));\n          }\n          pdVar18 = pdVar11;\n          iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13);\n          if (iVar7 == 0) {\n            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar30 + 0x65) != 0) {\n            piVar26 = *(int **)(pdVar1 + 6);\n            (**(code **)(puVar28 + 0x20348c))();\n            uVar17 = piVar26[1] + 1;\n            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;\n            piVar26[1] = uVar17;\n            (**(code **)(puVar28 + 0x2035e0))();\n            pdVar18 = pdVar30;\n            iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));\n            if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)((int)pdVar1 + 0x2c) != 0)" ( (binary_expression "*(int *)((int)pdVar1 + 0x2c) != 0" (pointer_expression "*(int *)((int)pdVar1 + 0x2c)" * (cast_expression "(int *)((int)pdVar1 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar1 + 0x2c)" ( (binary_expression "(int)pdVar1 + 0x2c" (cast_expression "(int)pdVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar7 = (**(code **)(puVar28 + 0x203804))\n                          (uVar12,-((int)uVar14 / 2),iStack_4e4 - ((uint)pdVar19 >> 1),\n                           uVar14 + *(int *)(pdVar30 + 3),pdVar19,uVar13);\n        pdVar18 = pdVar11;\n        iVar8 = (**(code **)(puVar28 + 0x202df8))\n                          (pdVar11,0,iStack_4e4,*(undefined4 *)(iVar5 + 0x18),1,uVar13);\n        if ((iVar7 == 0) || (iVar8 == 0)) {\n          *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n        }\n        else {\n          iVar25 = *(int *)(pdVar30 + 0x58);\n          iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25;\n          if (0 < iVar25) {\n            iVar23 = 0;\n            iVar22 = 0;\n            do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);\n          }\n          if (0 < *(int *)(pdVar30 + 3)) {\n            iStack_4e8 = 0;\n            uVar36 = 0;\n            do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));\n          }\n          pdVar18 = pdVar11;\n          iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13);\n          if (iVar7 == 0) {\n            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar30 + 0x65) != 0) {\n            piVar26 = *(int **)(pdVar1 + 6);\n            (**(code **)(puVar28 + 0x20348c))();\n            uVar17 = piVar26[1] + 1;\n            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;\n            piVar26[1] = uVar17;\n            (**(code **)(puVar28 + 0x2035e0))();\n            pdVar18 = pdVar30;\n            iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));\n            if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }\n          }\n        }\n      }" { (expression_statement "iVar7 = (**(code **)(puVar28 + 0x203804))\n                          (uVar12,-((int)uVar14 / 2),iStack_4e4 - ((uint)pdVar19 >> 1),\n                           uVar14 + *(int *)(pdVar30 + 3),pdVar19,uVar13);" (assignment_expression "iVar7 = (**(code **)(puVar28 + 0x203804))\n                          (uVar12,-((int)uVar14 / 2),iStack_4e4 - ((uint)pdVar19 >> 1),\n                           uVar14 + *(int *)(pdVar30 + 3),pdVar19,uVar13)" identifier = (call_expression "(**(code **)(puVar28 + 0x203804))\n                          (uVar12,-((int)uVar14 / 2),iStack_4e4 - ((uint)pdVar19 >> 1),\n                           uVar14 + *(int *)(pdVar30 + 3),pdVar19,uVar13)" (parenthesized_expression "(**(code **)(puVar28 + 0x203804))" ( (pointer_expression "**(code **)(puVar28 + 0x203804)" * (pointer_expression "*(code **)(puVar28 + 0x203804)" * (cast_expression "(code **)(puVar28 + 0x203804)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x203804)" ( (binary_expression "puVar28 + 0x203804" identifier + number_literal) ))))) )) (argument_list "(uVar12,-((int)uVar14 / 2),iStack_4e4 - ((uint)pdVar19 >> 1),\n                           uVar14 + *(int *)(pdVar30 + 3),pdVar19,uVar13)" ( identifier , (unary_expression "-((int)uVar14 / 2)" - (parenthesized_expression "((int)uVar14 / 2)" ( (binary_expression "(int)uVar14 / 2" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) / number_literal) ))) , (binary_expression "iStack_4e4 - ((uint)pdVar19 >> 1)" identifier - (parenthesized_expression "((uint)pdVar19 >> 1)" ( (binary_expression "(uint)pdVar19 >> 1" (cast_expression "(uint)pdVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "uVar14 + *(int *)(pdVar30 + 3)" identifier + (pointer_expression "*(int *)(pdVar30 + 3)" * (cast_expression "(int *)(pdVar30 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 3)" ( (binary_expression "pdVar30 + 3" identifier + number_literal) ))))) , identifier , identifier )))) ;) (expression_statement "pdVar18 = pdVar11;" (assignment_expression "pdVar18 = pdVar11" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(puVar28 + 0x202df8))\n                          (pdVar11,0,iStack_4e4,*(undefined4 *)(iVar5 + 0x18),1,uVar13);" (assignment_expression "iVar8 = (**(code **)(puVar28 + 0x202df8))\n                          (pdVar11,0,iStack_4e4,*(undefined4 *)(iVar5 + 0x18),1,uVar13)" identifier = (call_expression "(**(code **)(puVar28 + 0x202df8))\n                          (pdVar11,0,iStack_4e4,*(undefined4 *)(iVar5 + 0x18),1,uVar13)" (parenthesized_expression "(**(code **)(puVar28 + 0x202df8))" ( (pointer_expression "**(code **)(puVar28 + 0x202df8)" * (pointer_expression "*(code **)(puVar28 + 0x202df8)" * (cast_expression "(code **)(puVar28 + 0x202df8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x202df8)" ( (binary_expression "puVar28 + 0x202df8" identifier + number_literal) ))))) )) (argument_list "(pdVar11,0,iStack_4e4,*(undefined4 *)(iVar5 + 0x18),1,uVar13)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar5 + 0x18)" * (cast_expression "(undefined4 *)(iVar5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((iVar7 == 0) || (iVar8 == 0)) {\n          *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n        }\n        else {\n          iVar25 = *(int *)(pdVar30 + 0x58);\n          iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25;\n          if (0 < iVar25) {\n            iVar23 = 0;\n            iVar22 = 0;\n            do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);\n          }\n          if (0 < *(int *)(pdVar30 + 3)) {\n            iStack_4e8 = 0;\n            uVar36 = 0;\n            do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));\n          }\n          pdVar18 = pdVar11;\n          iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13);\n          if (iVar7 == 0) {\n            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar30 + 0x65) != 0) {\n            piVar26 = *(int **)(pdVar1 + 6);\n            (**(code **)(puVar28 + 0x20348c))();\n            uVar17 = piVar26[1] + 1;\n            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;\n            piVar26[1] = uVar17;\n            (**(code **)(puVar28 + 0x2035e0))();\n            pdVar18 = pdVar30;\n            iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));\n            if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }\n          }\n        }" if (parenthesized_expression "((iVar7 == 0) || (iVar8 == 0))" ( (binary_expression "(iVar7 == 0) || (iVar8 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) ))) )) (compound_statement "{\n          *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n        }" { (expression_statement "*(undefined4 *)((int)pdVar1 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar1 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar1 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdVar1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar1 + 0x2c)" ( (binary_expression "(int)pdVar1 + 0x2c" (cast_expression "(int)pdVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          iVar25 = *(int *)(pdVar30 + 0x58);\n          iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25;\n          if (0 < iVar25) {\n            iVar23 = 0;\n            iVar22 = 0;\n            do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);\n          }\n          if (0 < *(int *)(pdVar30 + 3)) {\n            iStack_4e8 = 0;\n            uVar36 = 0;\n            do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));\n          }\n          pdVar18 = pdVar11;\n          iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13);\n          if (iVar7 == 0) {\n            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar30 + 0x65) != 0) {\n            piVar26 = *(int **)(pdVar1 + 6);\n            (**(code **)(puVar28 + 0x20348c))();\n            uVar17 = piVar26[1] + 1;\n            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;\n            piVar26[1] = uVar17;\n            (**(code **)(puVar28 + 0x2035e0))();\n            pdVar18 = pdVar30;\n            iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));\n            if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }\n          }\n        }" else (compound_statement "{\n          iVar25 = *(int *)(pdVar30 + 0x58);\n          iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25;\n          if (0 < iVar25) {\n            iVar23 = 0;\n            iVar22 = 0;\n            do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);\n          }\n          if (0 < *(int *)(pdVar30 + 3)) {\n            iStack_4e8 = 0;\n            uVar36 = 0;\n            do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));\n          }\n          pdVar18 = pdVar11;\n          iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13);\n          if (iVar7 == 0) {\n            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar30 + 0x65) != 0) {\n            piVar26 = *(int **)(pdVar1 + 6);\n            (**(code **)(puVar28 + 0x20348c))();\n            uVar17 = piVar26[1] + 1;\n            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;\n            piVar26[1] = uVar17;\n            (**(code **)(puVar28 + 0x2035e0))();\n            pdVar18 = pdVar30;\n            iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));\n            if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }\n          }\n        }" { (expression_statement "iVar25 = *(int *)(pdVar30 + 0x58);" (assignment_expression "iVar25 = *(int *)(pdVar30 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar30 + 0x58)" * (cast_expression "(int *)(pdVar30 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 0x58)" ( (binary_expression "pdVar30 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25;" (assignment_expression "iVar24 = ((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25" identifier = (binary_expression "((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)) *\n                   iVar25" (parenthesized_expression "((uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1))" ( (binary_expression "(uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1) + (uVar14 >> 1)" (binary_expression "(uVar14 + *(int *)(pdVar30 + 3)) * ((uint)pdVar19 >> 1)" (parenthesized_expression "(uVar14 + *(int *)(pdVar30 + 3))" ( (binary_expression "uVar14 + *(int *)(pdVar30 + 3)" identifier + (pointer_expression "*(int *)(pdVar30 + 3)" * (cast_expression "(int *)(pdVar30 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 3)" ( (binary_expression "pdVar30 + 3" identifier + number_literal) ))))) )) * (parenthesized_expression "((uint)pdVar19 >> 1)" ( (binary_expression "(uint)pdVar19 >> 1" (cast_expression "(uint)pdVar19" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) + (parenthesized_expression "(uVar14 >> 1)" ( (binary_expression "uVar14 >> 1" identifier >> number_literal) ))) )) * identifier)) ;) (if_statement "if (0 < iVar25) {\n            iVar23 = 0;\n            iVar22 = 0;\n            do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);\n          }" if (parenthesized_expression "(0 < iVar25)" ( (binary_expression "0 < iVar25" number_literal < identifier) )) (compound_statement "{\n            iVar23 = 0;\n            iVar22 = 0;\n            do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);\n          }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            } while (iVar22 < iVar25);" do (compound_statement "{\n              iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);\n              iVar9 = iVar21 * 0xc;\n              if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }\n              iVar22 = iVar22 + 1;\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              iVar23 = iVar23 + 0xc;\n            }" { (expression_statement "iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23);" (assignment_expression "iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar23)" identifier = (pointer_expression "*(int *)(*(int *)(pdVar30 + 0x5a) + iVar23)" * (cast_expression "(int *)(*(int *)(pdVar30 + 0x5a) + iVar23)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar30 + 0x5a) + iVar23)" ( (binary_expression "*(int *)(pdVar30 + 0x5a) + iVar23" (pointer_expression "*(int *)(pdVar30 + 0x5a)" * (cast_expression "(int *)(pdVar30 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 0x5a)" ( (binary_expression "pdVar30 + 0x5a" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "iVar9 = iVar21 * 0xc;" (assignment_expression "iVar9 = iVar21 * 0xc" identifier = (binary_expression "iVar21 * 0xc" identifier * number_literal)) ;) (if_statement "if ((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)) {\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }" if (parenthesized_expression "((*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0))" ( (binary_expression "(*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0) &&\n                 (uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)" (parenthesized_expression "(*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0)" ( (binary_expression "*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4)" * (cast_expression "(int *)(*(int *)(pdVar30 + 0x5a) + iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar30 + 0x5a) + iVar9 + 4)" ( (binary_expression "*(int *)(pdVar30 + 0x5a) + iVar9 + 4" (binary_expression "*(int *)(pdVar30 + 0x5a) + iVar9" (pointer_expression "*(int *)(pdVar30 + 0x5a)" * (cast_expression "(int *)(pdVar30 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 0x5a)" ( (binary_expression "pdVar30 + 0x5a" identifier + number_literal) )))) + identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0)" ( (comma_expression "uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4), uVar17 != 0" (assignment_expression "uVar17 = *(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4)" * (cast_expression "(uint *)(*(int *)(iVar5 + 0x2d0) + iVar9 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x2d0) + iVar9 + 4)" ( (binary_expression "*(int *)(iVar5 + 0x2d0) + iVar9 + 4" (binary_expression "*(int *)(iVar5 + 0x2d0) + iVar9" (pointer_expression "*(int *)(iVar5 + 0x2d0)" * (cast_expression "(int *)(iVar5 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2d0)" ( (binary_expression "iVar5 + 0x2d0" identifier + number_literal) )))) + identifier) + number_literal) ))))) , (binary_expression "uVar17 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }\n              }" { (if_statement "if ((uVar17 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }\n                else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }" if (parenthesized_expression "((uVar17 & 1) == 0)" ( (binary_expression "(uVar17 & 1) == 0" (parenthesized_expression "(uVar17 & 1)" ( (binary_expression "uVar17 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar21) = 0;\n                  if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }\n                }" { (expression_statement "*(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0" (pointer_expression "*(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4)" * (cast_expression "(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_4a0 + iVar21 * 8 + 4)" ( (binary_expression "(int)&uStack_4a0 + iVar21 * 8 + 4" (binary_expression "(int)&uStack_4a0 + iVar21 * 8" (cast_expression "(int)&uStack_4a0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_4a0" & identifier)) + (binary_expression "iVar21 * 8" identifier * number_literal)) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&uStack_4a0 + iVar21) = 0;" (assignment_expression "*(undefined4 *)(&uStack_4a0 + iVar21) = 0" (pointer_expression "*(undefined4 *)(&uStack_4a0 + iVar21)" * (cast_expression "(undefined4 *)(&uStack_4a0 + iVar21)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&uStack_4a0 + iVar21)" ( (binary_expression "&uStack_4a0 + iVar21" (pointer_expression "&uStack_4a0" & identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4) = 0" (pointer_expression "*(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4)" * (cast_expression "(undefined4 *)((int)&uStack_2a0 + iVar21 * 8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_2a0 + iVar21 * 8 + 4)" ( (binary_expression "(int)&uStack_2a0 + iVar21 * 8 + 4" (binary_expression "(int)&uStack_2a0 + iVar21 * 8" (cast_expression "(int)&uStack_2a0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_2a0" & identifier)) + (binary_expression "iVar21 * 8" identifier * number_literal)) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&uStack_2a0 + iVar21) = 0;" (assignment_expression "*(undefined4 *)(&uStack_2a0 + iVar21) = 0" (pointer_expression "*(undefined4 *)(&uStack_2a0 + iVar21)" * (cast_expression "(undefined4 *)(&uStack_2a0 + iVar21)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&uStack_2a0 + iVar21)" ( (binary_expression "&uStack_2a0 + iVar21" (pointer_expression "&uStack_2a0" & identifier) + identifier) )))) = number_literal) ;) (if_statement "if (0 < (int)pdVar19) {\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }" if (parenthesized_expression "(0 < (int)pdVar19)" ( (binary_expression "0 < (int)pdVar19" number_literal < (cast_expression "(int)pdVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    pdVar18 = (double *)0x0;\n                    iVar9 = iVar7;\n                    do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);\n                  }" { (expression_statement "pdVar18 = (double *)0x0;" (assignment_expression "pdVar18 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar9 = iVar7;" (assignment_expression "iVar9 = iVar7" identifier = identifier) ;) (do_statement "do {\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    } while (pdVar18 != pdVar19);" do (compound_statement "{\n                      pfVar16 = (float *)(iVar9 + iVar22 * 4);\n                      if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }\n                      pdVar18 = (double *)((int)pdVar18 + 1);\n                      iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;\n                    }" { (expression_statement "pfVar16 = (float *)(iVar9 + iVar22 * 4);" (assignment_expression "pfVar16 = (float *)(iVar9 + iVar22 * 4)" identifier = (cast_expression "(float *)(iVar9 + iVar22 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar22 * 4)" ( (binary_expression "iVar9 + iVar22 * 4" identifier + (binary_expression "iVar22 * 4" identifier * number_literal)) )))) ;) (if_statement "if (0 < (int)uVar14) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }" if (parenthesized_expression "(0 < (int)uVar14)" ( (binary_expression "0 < (int)uVar14" number_literal < (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                        dVar33 = (double)(&uStack_2a0)[iVar21];\n                        uVar17 = 0;\n                        do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);\n                        iVar9 = iVar9 + uVar14 * iVar25 * 4;\n                        (&uStack_2a0)[iVar21] = dVar33;\n                      }" { (expression_statement "dVar33 = (double)(&uStack_2a0)[iVar21];" (assignment_expression "dVar33 = (double)(&uStack_2a0)[iVar21]" identifier = (cast_expression "(double)(&uStack_2a0)[iVar21]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_2a0)[iVar21]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ]))) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        } while (uVar14 != uVar17);" do (compound_statement "{\n                          if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }\n                          dVar33 = dVar33 + (double)*pfVar16;\n                          uVar17 = uVar17 + 1;\n                          pfVar16 = pfVar16 + iVar25;\n                        }" { (if_statement "if (uVar14 - 1 == uVar17) {\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }" if (parenthesized_expression "(uVar14 - 1 == uVar17)" ( (binary_expression "uVar14 - 1 == uVar17" (binary_expression "uVar14 - 1" identifier - number_literal) == identifier) )) (compound_statement "{\n                            (&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;\n                          }" { (expression_statement "(&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16\n                            ;" (assignment_expression "(&uStack_4a0)[iVar21] = (double)(&uStack_4a0)[iVar21] + (double)*pfVar16" (subscript_expression "(&uStack_4a0)[iVar21]" (parenthesized_expression "(&uStack_4a0)" ( (pointer_expression "&uStack_4a0" & identifier) )) [ identifier ]) = (binary_expression "(double)(&uStack_4a0)[iVar21] + (double)*pfVar16" (cast_expression "(double)(&uStack_4a0)[iVar21]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_4a0)[iVar21]" (parenthesized_expression "(&uStack_4a0)" ( (pointer_expression "&uStack_4a0" & identifier) )) [ identifier ])) + (cast_expression "(double)*pfVar16" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar16" * identifier)))) ;) })) (expression_statement "dVar33 = dVar33 + (double)*pfVar16;" (assignment_expression "dVar33 = dVar33 + (double)*pfVar16" identifier = (binary_expression "dVar33 + (double)*pfVar16" identifier + (cast_expression "(double)*pfVar16" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar16" * identifier)))) ;) (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (expression_statement "pfVar16 = pfVar16 + iVar25;" (assignment_expression "pfVar16 = pfVar16 + iVar25" identifier = (binary_expression "pfVar16 + iVar25" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar14 != uVar17)" ( (binary_expression "uVar14 != uVar17" identifier != identifier) )) ;) (expression_statement "iVar9 = iVar9 + uVar14 * iVar25 * 4;" (assignment_expression "iVar9 = iVar9 + uVar14 * iVar25 * 4" identifier = (binary_expression "iVar9 + uVar14 * iVar25 * 4" identifier + (binary_expression "uVar14 * iVar25 * 4" (binary_expression "uVar14 * iVar25" identifier * identifier) * number_literal))) ;) (expression_statement "(&uStack_2a0)[iVar21] = dVar33;" (assignment_expression "(&uStack_2a0)[iVar21] = dVar33" (subscript_expression "(&uStack_2a0)[iVar21]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ]) = identifier) ;) })) (expression_statement "pdVar18 = (double *)((int)pdVar18 + 1);" (assignment_expression "pdVar18 = (double *)((int)pdVar18 + 1)" identifier = (cast_expression "(double *)((int)pdVar18 + 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + 1)" ( (binary_expression "(int)pdVar18 + 1" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9;" (assignment_expression "iVar9 = *(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9" identifier = (binary_expression "*(int *)(pdVar30 + 3) * 4 * iVar25 + iVar9" (binary_expression "*(int *)(pdVar30 + 3) * 4 * iVar25" (binary_expression "*(int *)(pdVar30 + 3) * 4" (pointer_expression "*(int *)(pdVar30 + 3)" * (cast_expression "(int *)(pdVar30 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 3)" ( (binary_expression "pdVar30 + 3" identifier + number_literal) )))) * number_literal) * identifier) + identifier)) ;) }) while (parenthesized_expression "(pdVar18 != pdVar19)" ( (binary_expression "pdVar18 != pdVar19" identifier != identifier) )) ;) })) }) (else_clause "else {\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }" else (compound_statement "{\n                  iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;\n                  if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }\n                }" { (expression_statement "iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9;" (assignment_expression "iVar9 = *(int *)(iVar5 + 0x2d0) + iVar9" identifier = (binary_expression "*(int *)(iVar5 + 0x2d0) + iVar9" (pointer_expression "*(int *)(iVar5 + 0x2d0)" * (cast_expression "(int *)(iVar5 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2d0)" ( (binary_expression "iVar5 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (*(int *)(iVar9 + 4) != 0) {\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }" if (parenthesized_expression "(*(int *)(iVar9 + 4) != 0)" ( (binary_expression "*(int *)(iVar9 + 4) != 0" (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    *(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);\n                  }" { (expression_statement "*(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4);" (assignment_expression "*(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4) =\n                         *(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4)" (pointer_expression "*(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar8 + *(int *)(iVar9 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar9 + 8) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar9 + 8) * 4" identifier + (binary_expression "*(int *)(iVar9 + 8) * 4" (pointer_expression "*(int *)(iVar9 + 8)" * (cast_expression "(int *)(iVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4)" * (cast_expression "(undefined4 *)(iVar7 + iVar22 * 4 + iVar24 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar22 * 4 + iVar24 * 4)" ( (binary_expression "iVar7 + iVar22 * 4 + iVar24 * 4" (binary_expression "iVar7 + iVar22 * 4" identifier + (binary_expression "iVar22 * 4" identifier * number_literal)) + (binary_expression "iVar24 * 4" identifier * number_literal)) ))))) ;) })) }))) })) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "iVar25 = *(int *)(pdVar30 + 0x58);" (assignment_expression "iVar25 = *(int *)(pdVar30 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar30 + 0x58)" * (cast_expression "(int *)(pdVar30 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 0x58)" ( (binary_expression "pdVar30 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar23 = iVar23 + 0xc;" (assignment_expression "iVar23 = iVar23 + 0xc" identifier = (binary_expression "iVar23 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar22 < iVar25)" ( (binary_expression "iVar22 < iVar25" identifier < identifier) )) ;) })) (if_statement "if (0 < *(int *)(pdVar30 + 3)) {\n            iStack_4e8 = 0;\n            uVar36 = 0;\n            do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));\n          }" if (parenthesized_expression "(0 < *(int *)(pdVar30 + 3))" ( (binary_expression "0 < *(int *)(pdVar30 + 3)" number_literal < (pointer_expression "*(int *)(pdVar30 + 3)" * (cast_expression "(int *)(pdVar30 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 3)" ( (binary_expression "pdVar30 + 3" identifier + number_literal) ))))) )) (compound_statement "{\n            iStack_4e8 = 0;\n            uVar36 = 0;\n            do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));\n          }" { (expression_statement "iStack_4e8 = 0;" (assignment_expression "iStack_4e8 = 0" identifier = number_literal) ;) (expression_statement "uVar36 = 0;" (assignment_expression "uVar36 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar30 + 3));" do (compound_statement "{\n              iVar25 = *(int *)(pdVar30 + 0x58);\n              if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }\n              iVar7 = iVar7 + iVar25 * 4;\n              iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            }" { (expression_statement "iVar25 = *(int *)(pdVar30 + 0x58);" (assignment_expression "iVar25 = *(int *)(pdVar30 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar30 + 0x58)" * (cast_expression "(int *)(pdVar30 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 0x58)" ( (binary_expression "pdVar30 + 0x58" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar25) {\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }" if (parenthesized_expression "(0 < iVar25)" ( (binary_expression "0 < iVar25" number_literal < identifier) )) (compound_statement "{\n                iVar22 = iVar7 + iVar24 * 4;\n                iVar9 = 0;\n                iVar23 = 0;\n                do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);\n              }" { (expression_statement "iVar22 = iVar7 + iVar24 * 4;" (assignment_expression "iVar22 = iVar7 + iVar24 * 4" identifier = (binary_expression "iVar7 + iVar24 * 4" identifier + (binary_expression "iVar24 * 4" identifier * number_literal))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (do_statement "do {\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                } while (iVar23 < iVar25);" do (compound_statement "{\n                  iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);\n                  if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar25 = *(int *)(pdVar30 + 0x58);\n                  iVar9 = iVar9 + 0xc;\n                }" { (expression_statement "iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9);" (assignment_expression "iVar21 = *(int *)(*(int *)(pdVar30 + 0x5a) + iVar9)" identifier = (pointer_expression "*(int *)(*(int *)(pdVar30 + 0x5a) + iVar9)" * (cast_expression "(int *)(*(int *)(pdVar30 + 0x5a) + iVar9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar30 + 0x5a) + iVar9)" ( (binary_expression "*(int *)(pdVar30 + 0x5a) + iVar9" (pointer_expression "*(int *)(pdVar30 + 0x5a)" * (cast_expression "(int *)(pdVar30 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 0x5a)" ( (binary_expression "pdVar30 + 0x5a" identifier + number_literal) )))) + identifier) ))))) ;) (if_statement "if (*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0) {\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }" if (parenthesized_expression "(*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0)" ( (binary_expression "*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4)" * (cast_expression "(int *)(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4)" ( (binary_expression "*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc + 4" (binary_expression "*(int *)(pdVar30 + 0x5a) + iVar21 * 0xc" (pointer_expression "*(int *)(pdVar30 + 0x5a)" * (cast_expression "(int *)(pdVar30 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 0x5a)" ( (binary_expression "pdVar30 + 0x5a" identifier + number_literal) )))) + (binary_expression "iVar21 * 0xc" identifier * number_literal)) + number_literal) )))) != number_literal) )) (compound_statement "{\n                    iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;\n                    if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }\n                  }" { (expression_statement "iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc;" (assignment_expression "iVar27 = *(int *)(iVar5 + 0x2d0) + iVar21 * 0xc" identifier = (binary_expression "*(int *)(iVar5 + 0x2d0) + iVar21 * 0xc" (pointer_expression "*(int *)(iVar5 + 0x2d0)" * (cast_expression "(int *)(iVar5 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2d0)" ( (binary_expression "iVar5 + 0x2d0" identifier + number_literal) )))) + (binary_expression "iVar21 * 0xc" identifier * number_literal))) ;) (if_statement "if (*(uint *)(iVar27 + 4) != 0) {\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }" if (parenthesized_expression "(*(uint *)(iVar27 + 4) != 0)" ( (binary_expression "*(uint *)(iVar27 + 4) != 0" (pointer_expression "*(uint *)(iVar27 + 4)" * (cast_expression "(uint *)(iVar27 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 4)" ( (binary_expression "iVar27 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }\n                    }" { (if_statement "if ((*(uint *)(iVar27 + 4) & 1) == 0) {\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }\n                      else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }" if (parenthesized_expression "((*(uint *)(iVar27 + 4) & 1) == 0)" ( (binary_expression "(*(uint *)(iVar27 + 4) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar27 + 4) & 1)" ( (binary_expression "*(uint *)(iVar27 + 4) & 1" (pointer_expression "*(uint *)(iVar27 + 4)" * (cast_expression "(uint *)(iVar27 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 4)" ( (binary_expression "iVar27 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                        dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];\n                        (&uStack_2a0)[iVar21] = dVar33;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar21) = 0;\n                        if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }\n                        dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);\n                        uVar31 = (undefined4)uVar36;\n                        if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        *(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;\n                      }" { (expression_statement "dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21];" (assignment_expression "dVar33 = (double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21]" identifier = (binary_expression "(double)(&uStack_2a0)[iVar21] - (double)(&uStack_4a0)[iVar21]" (cast_expression "(double)(&uStack_2a0)[iVar21]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_2a0)[iVar21]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ])) - (cast_expression "(double)(&uStack_4a0)[iVar21]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_4a0)[iVar21]" (parenthesized_expression "(&uStack_4a0)" ( (pointer_expression "&uStack_4a0" & identifier) )) [ identifier ])))) ;) (expression_statement "(&uStack_2a0)[iVar21] = dVar33;" (assignment_expression "(&uStack_2a0)[iVar21] = dVar33" (subscript_expression "(&uStack_2a0)[iVar21]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "*(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4) = 0" (pointer_expression "*(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4)" * (cast_expression "(undefined4 *)((int)&uStack_4a0 + iVar21 * 8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_4a0 + iVar21 * 8 + 4)" ( (binary_expression "(int)&uStack_4a0 + iVar21 * 8 + 4" (binary_expression "(int)&uStack_4a0 + iVar21 * 8" (cast_expression "(int)&uStack_4a0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_4a0" & identifier)) + (binary_expression "iVar21 * 8" identifier * number_literal)) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&uStack_4a0 + iVar21) = 0;" (assignment_expression "*(undefined4 *)(&uStack_4a0 + iVar21) = 0" (pointer_expression "*(undefined4 *)(&uStack_4a0 + iVar21)" * (cast_expression "(undefined4 *)(&uStack_4a0 + iVar21)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&uStack_4a0 + iVar21)" ( (binary_expression "&uStack_4a0 + iVar21" (pointer_expression "&uStack_4a0" & identifier) + identifier) )))) = number_literal) ;) (if_statement "if (0 < (int)pdVar19) {\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }" if (parenthesized_expression "(0 < (int)pdVar19)" ( (binary_expression "0 < (int)pdVar19" number_literal < (cast_expression "(int)pdVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                          iVar15 = (uVar14 - 1) * 4 * iVar25;\n                          iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;\n                          pfVar20 = (float *)(iVar7 + iVar23 * 4);\n                          pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);\n                          dVar32 = 0.0;\n                          pdVar18 = (double *)0x0;\n                          do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);\n                          (&uStack_4a0)[iVar21] = dVar32;\n                          (&uStack_2a0)[iVar21] = dVar33;\n                        }" { (expression_statement "iVar15 = (uVar14 - 1) * 4 * iVar25;" (assignment_expression "iVar15 = (uVar14 - 1) * 4 * iVar25" identifier = (binary_expression "(uVar14 - 1) * 4 * iVar25" (binary_expression "(uVar14 - 1) * 4" (parenthesized_expression "(uVar14 - 1)" ( (binary_expression "uVar14 - 1" identifier - number_literal) )) * number_literal) * identifier)) ;) (expression_statement "iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15;" (assignment_expression "iVar25 = (*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15" identifier = (binary_expression "(*(int *)(pdVar30 + 3) + 1) * 4 * iVar25 + iVar15" (binary_expression "(*(int *)(pdVar30 + 3) + 1) * 4 * iVar25" (binary_expression "(*(int *)(pdVar30 + 3) + 1) * 4" (parenthesized_expression "(*(int *)(pdVar30 + 3) + 1)" ( (binary_expression "*(int *)(pdVar30 + 3) + 1" (pointer_expression "*(int *)(pdVar30 + 3)" * (cast_expression "(int *)(pdVar30 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 3)" ( (binary_expression "pdVar30 + 3" identifier + number_literal) )))) + number_literal) )) * number_literal) * identifier) + identifier)) ;) (expression_statement "pfVar20 = (float *)(iVar7 + iVar23 * 4);" (assignment_expression "pfVar20 = (float *)(iVar7 + iVar23 * 4)" identifier = (cast_expression "(float *)(iVar7 + iVar23 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar23 * 4)" ( (binary_expression "iVar7 + iVar23 * 4" identifier + (binary_expression "iVar23 * 4" identifier * number_literal)) )))) ;) (expression_statement "pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4);" (assignment_expression "pfVar16 = (float *)(iVar7 + iVar15 + iVar23 * 4)" identifier = (cast_expression "(float *)(iVar7 + iVar15 + iVar23 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar15 + iVar23 * 4)" ( (binary_expression "iVar7 + iVar15 + iVar23 * 4" (binary_expression "iVar7 + iVar15" identifier + identifier) + (binary_expression "iVar23 * 4" identifier * number_literal)) )))) ;) (expression_statement "dVar32 = 0.0;" (assignment_expression "dVar32 = 0.0" identifier = number_literal) ;) (expression_statement "pdVar18 = (double *)0x0;" (assignment_expression "pdVar18 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          } while (pdVar18 != pdVar19);" do (compound_statement "{\n                            dVar32 = dVar32 + (double)*pfVar20;\n                            dVar33 = dVar33 + (double)*pfVar16;\n                            pdVar18 = (double *)((int)pdVar18 + 1);\n                            pfVar20 = (float *)((int)pfVar20 + iVar25);\n                            pfVar16 = (float *)((int)pfVar16 + iVar25);\n                          }" { (expression_statement "dVar32 = dVar32 + (double)*pfVar20;" (assignment_expression "dVar32 = dVar32 + (double)*pfVar20" identifier = (binary_expression "dVar32 + (double)*pfVar20" identifier + (cast_expression "(double)*pfVar20" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar20" * identifier)))) ;) (expression_statement "dVar33 = dVar33 + (double)*pfVar16;" (assignment_expression "dVar33 = dVar33 + (double)*pfVar16" identifier = (binary_expression "dVar33 + (double)*pfVar16" identifier + (cast_expression "(double)*pfVar16" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar16" * identifier)))) ;) (expression_statement "pdVar18 = (double *)((int)pdVar18 + 1);" (assignment_expression "pdVar18 = (double *)((int)pdVar18 + 1)" identifier = (cast_expression "(double *)((int)pdVar18 + 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + 1)" ( (binary_expression "(int)pdVar18 + 1" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pfVar20 = (float *)((int)pfVar20 + iVar25);" (assignment_expression "pfVar20 = (float *)((int)pfVar20 + iVar25)" identifier = (cast_expression "(float *)((int)pfVar20 + iVar25)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pfVar20 + iVar25)" ( (binary_expression "(int)pfVar20 + iVar25" (cast_expression "(int)pfVar20" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pfVar16 = (float *)((int)pfVar16 + iVar25);" (assignment_expression "pfVar16 = (float *)((int)pfVar16 + iVar25)" identifier = (cast_expression "(float *)((int)pfVar16 + iVar25)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pfVar16 + iVar25)" ( (binary_expression "(int)pfVar16 + iVar25" (cast_expression "(int)pfVar16" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) while (parenthesized_expression "(pdVar18 != pdVar19)" ( (binary_expression "pdVar18 != pdVar19" identifier != identifier) )) ;) (expression_statement "(&uStack_4a0)[iVar21] = dVar32;" (assignment_expression "(&uStack_4a0)[iVar21] = dVar32" (subscript_expression "(&uStack_4a0)[iVar21]" (parenthesized_expression "(&uStack_4a0)" ( (pointer_expression "&uStack_4a0" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&uStack_2a0)[iVar21] = dVar33;" (assignment_expression "(&uStack_2a0)[iVar21] = dVar33" (subscript_expression "(&uStack_2a0)[iVar21]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ]) = identifier) ;) })) (expression_statement "dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10);" (assignment_expression "dVar33 = (double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10)" identifier = (cast_expression "(double)(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar28 + 0x202a90))(uVar6,uVar10)" (parenthesized_expression "(**(code **)(puVar28 + 0x202a90))" ( (pointer_expression "**(code **)(puVar28 + 0x202a90)" * (pointer_expression "*(code **)(puVar28 + 0x202a90)" * (cast_expression "(code **)(puVar28 + 0x202a90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x202a90)" ( (binary_expression "puVar28 + 0x202a90" identifier + number_literal) ))))) )) (argument_list "(uVar6,uVar10)" ( identifier , identifier ))))) ;) (expression_statement "uVar31 = (undefined4)uVar36;" (assignment_expression "uVar31 = (undefined4)uVar36" identifier = (cast_expression "(undefined4)uVar36" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if ((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34) {\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }\n                        else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }" if (parenthesized_expression "((double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34)" ( (binary_expression "(double)*(float *)(iVar22 + iVar23 * 4) <=\n                            (double)(&uStack_2a0)[iVar21] / dVar33 + dVar34" (cast_expression "(double)*(float *)(iVar22 + iVar23 * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar22 + iVar23 * 4)" * (cast_expression "(float *)(iVar22 + iVar23 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + iVar23 * 4)" ( (binary_expression "iVar22 + iVar23 * 4" identifier + (binary_expression "iVar23 * 4" identifier * number_literal)) ))))) <= (binary_expression "(double)(&uStack_2a0)[iVar21] / dVar33 + dVar34" (binary_expression "(double)(&uStack_2a0)[iVar21] / dVar33" (cast_expression "(double)(&uStack_2a0)[iVar21]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_2a0)[iVar21]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ])) / identifier) + identifier)) )) (compound_statement "{\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }" { (expression_statement "iVar25 = *(int *)(iVar27 + 8);" (assignment_expression "iVar25 = *(int *)(iVar27 + 8)" identifier = (pointer_expression "*(int *)(iVar27 + 8)" * (cast_expression "(int *)(iVar27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 8)" ( (binary_expression "iVar27 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }" else (compound_statement "{\n                          uVar31 = (undefined4)uVar35;\n                          iVar25 = *(int *)(iVar27 + 8);\n                        }" { (expression_statement "uVar31 = (undefined4)uVar35;" (assignment_expression "uVar31 = (undefined4)uVar35" identifier = (cast_expression "(undefined4)uVar35" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "iVar25 = *(int *)(iVar27 + 8);" (assignment_expression "iVar25 = *(int *)(iVar27 + 8)" identifier = (pointer_expression "*(int *)(iVar27 + 8)" * (cast_expression "(int *)(iVar27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 8)" ( (binary_expression "iVar27 + 8" identifier + number_literal) ))))) ;) }))) (expression_statement "*(undefined4 *)(iVar8 + iVar25 * 4) = uVar31;" (assignment_expression "*(undefined4 *)(iVar8 + iVar25 * 4) = uVar31" (pointer_expression "*(undefined4 *)(iVar8 + iVar25 * 4)" * (cast_expression "(undefined4 *)(iVar8 + iVar25 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar25 * 4)" ( (binary_expression "iVar8 + iVar25 * 4" identifier + (binary_expression "iVar25 * 4" identifier * number_literal)) )))) = identifier) ;) }) (else_clause "else {\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }" else (compound_statement "{\n                        *(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);\n                      }" { (expression_statement "*(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4);" (assignment_expression "*(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4) =\n                             *(undefined4 *)(iVar22 + iVar23 * 4)" (pointer_expression "*(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar8 + *(int *)(iVar27 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + *(int *)(iVar27 + 8) * 4)" ( (binary_expression "iVar8 + *(int *)(iVar27 + 8) * 4" identifier + (binary_expression "*(int *)(iVar27 + 8) * 4" (pointer_expression "*(int *)(iVar27 + 8)" * (cast_expression "(int *)(iVar27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 8)" ( (binary_expression "iVar27 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*(undefined4 *)(iVar22 + iVar23 * 4)" * (cast_expression "(undefined4 *)(iVar22 + iVar23 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + iVar23 * 4)" ( (binary_expression "iVar22 + iVar23 * 4" identifier + (binary_expression "iVar23 * 4" identifier * number_literal)) ))))) ;) }))) })) })) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "iVar25 = *(int *)(pdVar30 + 0x58);" (assignment_expression "iVar25 = *(int *)(pdVar30 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar30 + 0x58)" * (cast_expression "(int *)(pdVar30 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 0x58)" ( (binary_expression "pdVar30 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar9 + 0xc;" (assignment_expression "iVar9 = iVar9 + 0xc" identifier = (binary_expression "iVar9 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar23 < iVar25)" ( (binary_expression "iVar23 < iVar25" identifier < identifier) )) ;) })) (expression_statement "iVar7 = iVar7 + iVar25 * 4;" (assignment_expression "iVar7 = iVar7 + iVar25 * 4" identifier = (binary_expression "iVar7 + iVar25 * 4" identifier + (binary_expression "iVar25 * 4" identifier * number_literal))) ;) (expression_statement "iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4;" (assignment_expression "iVar8 = iVar8 + *(int *)(iVar5 + 0x2c0) * 4" identifier = (binary_expression "iVar8 + *(int *)(iVar5 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar5 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar5 + 0x2c0)" * (cast_expression "(int *)(iVar5 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c0)" ( (binary_expression "iVar5 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iStack_4e8 = iStack_4e8 + 1;" (assignment_expression "iStack_4e8 = iStack_4e8 + 1" identifier = (binary_expression "iStack_4e8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_4e8 < *(int *)(pdVar30 + 3))" ( (binary_expression "iStack_4e8 < *(int *)(pdVar30 + 3)" identifier < (pointer_expression "*(int *)(pdVar30 + 3)" * (cast_expression "(int *)(pdVar30 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 3)" ( (binary_expression "pdVar30 + 3" identifier + number_literal) ))))) )) ;) })) (expression_statement "pdVar18 = pdVar11;" (assignment_expression "pdVar18 = pdVar11" identifier = identifier) ;) (expression_statement "iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13);" (assignment_expression "iVar7 = (**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13)" identifier = (call_expression "(**(code **)(puVar28 + 0x2036a0))(pdVar11,uVar13)" (parenthesized_expression "(**(code **)(puVar28 + 0x2036a0))" ( (pointer_expression "**(code **)(puVar28 + 0x2036a0)" * (pointer_expression "*(code **)(puVar28 + 0x2036a0)" * (cast_expression "(code **)(puVar28 + 0x2036a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x2036a0)" ( (binary_expression "puVar28 + 0x2036a0" identifier + number_literal) ))))) )) (argument_list "(pdVar11,uVar13)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n          }" { (expression_statement "*(undefined4 *)((int)pdVar1 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar1 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar1 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdVar1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar1 + 0x2c)" ( (binary_expression "(int)pdVar1 + 0x2c" (cast_expression "(int)pdVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(pdVar30 + 0x65) != 0) {\n            piVar26 = *(int **)(pdVar1 + 6);\n            (**(code **)(puVar28 + 0x20348c))();\n            uVar17 = piVar26[1] + 1;\n            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;\n            piVar26[1] = uVar17;\n            (**(code **)(puVar28 + 0x2035e0))();\n            pdVar18 = pdVar30;\n            iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));\n            if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }\n          }" if (parenthesized_expression "(*(int *)(pdVar30 + 0x65) != 0)" ( (binary_expression "*(int *)(pdVar30 + 0x65) != 0" (pointer_expression "*(int *)(pdVar30 + 0x65)" * (cast_expression "(int *)(pdVar30 + 0x65)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar30 + 0x65)" ( (binary_expression "pdVar30 + 0x65" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar26 = *(int **)(pdVar1 + 6);\n            (**(code **)(puVar28 + 0x20348c))();\n            uVar17 = piVar26[1] + 1;\n            *piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;\n            piVar26[1] = uVar17;\n            (**(code **)(puVar28 + 0x2035e0))();\n            pdVar18 = pdVar30;\n            iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));\n            if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }\n          }" { (expression_statement "piVar26 = *(int **)(pdVar1 + 6);" (assignment_expression "piVar26 = *(int **)(pdVar1 + 6)" identifier = (pointer_expression "*(int **)(pdVar1 + 6)" * (cast_expression "(int **)(pdVar1 + 6)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar1 + 6)" ( (binary_expression "pdVar1 + 6" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar28 + 0x20348c))();" (call_expression "(**(code **)(puVar28 + 0x20348c))()" (parenthesized_expression "(**(code **)(puVar28 + 0x20348c))" ( (pointer_expression "**(code **)(puVar28 + 0x20348c)" * (pointer_expression "*(code **)(puVar28 + 0x20348c)" * (cast_expression "(code **)(puVar28 + 0x20348c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x20348c)" ( (binary_expression "puVar28 + 0x20348c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar17 = piVar26[1] + 1;" (assignment_expression "uVar17 = piVar26[1] + 1" identifier = (binary_expression "piVar26[1] + 1" (subscript_expression "piVar26[1]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26;" (assignment_expression "*piVar26 = (uint)(uVar17 < (uint)piVar26[1]) + *piVar26" (pointer_expression "*piVar26" * identifier) = (binary_expression "(uint)(uVar17 < (uint)piVar26[1]) + *piVar26" (call_expression "(uint)(uVar17 < (uint)piVar26[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 < (uint)piVar26[1])" ( (binary_expression "uVar17 < (uint)piVar26[1]" identifier < (cast_expression "(uint)piVar26[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar26[1]" identifier [ number_literal ]))) ))) + (pointer_expression "*piVar26" * identifier))) ;) (expression_statement "piVar26[1] = uVar17;" (assignment_expression "piVar26[1] = uVar17" (subscript_expression "piVar26[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(**(code **)(puVar28 + 0x2035e0))();" (call_expression "(**(code **)(puVar28 + 0x2035e0))()" (parenthesized_expression "(**(code **)(puVar28 + 0x2035e0))" ( (pointer_expression "**(code **)(puVar28 + 0x2035e0)" * (pointer_expression "*(code **)(puVar28 + 0x2035e0)" * (cast_expression "(code **)(puVar28 + 0x2035e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x2035e0)" ( (binary_expression "puVar28 + 0x2035e0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pdVar18 = pdVar30;" (assignment_expression "pdVar18 = pdVar30" identifier = identifier) ;) (expression_statement "iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c));" (assignment_expression "iVar7 = (**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c))" identifier = (call_expression "(**(code **)(puVar28 + 0x202e5c))\n                              (pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c))" (parenthesized_expression "(**(code **)(puVar28 + 0x202e5c))" ( (pointer_expression "**(code **)(puVar28 + 0x202e5c)" * (pointer_expression "*(code **)(puVar28 + 0x202e5c)" * (cast_expression "(code **)(puVar28 + 0x202e5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x202e5c)" ( (binary_expression "puVar28 + 0x202e5c" identifier + number_literal) ))))) )) (argument_list "(pdVar30,iVar4 + 0xe60,**(undefined4 **)(pdVar1 + 6),\n                               (*(undefined4 **)(pdVar1 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar30 + 0x1c))" ( identifier , (binary_expression "iVar4 + 0xe60" identifier + number_literal) , (pointer_expression "**(undefined4 **)(pdVar1 + 6)" * (pointer_expression "*(undefined4 **)(pdVar1 + 6)" * (cast_expression "(undefined4 **)(pdVar1 + 6)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar1 + 6)" ( (binary_expression "pdVar1 + 6" identifier + number_literal) ))))) , (subscript_expression "(*(undefined4 **)(pdVar1 + 6))[1]" (parenthesized_expression "(*(undefined4 **)(pdVar1 + 6))" ( (pointer_expression "*(undefined4 **)(pdVar1 + 6)" * (cast_expression "(undefined4 **)(pdVar1 + 6)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar1 + 6)" ( (binary_expression "pdVar1 + 6" identifier + number_literal) )))) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)((int)pdVar30 + 0x1c)" * (cast_expression "(undefined4 *)((int)pdVar30 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar30 + 0x1c)" ( (binary_expression "(int)pdVar30 + 0x1c" (cast_expression "(int)pdVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (iVar7 == 0) {\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              *(undefined4 *)((int)pdVar1 + 0x2c) = 0;\n            }" { (expression_statement "*(undefined4 *)((int)pdVar1 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar1 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar1 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdVar1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar1 + 0x2c)" ( (binary_expression "(int)pdVar1 + 0x2c" (cast_expression "(int)pdVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) })) }))) })) (expression_statement "iStack_4e4 = iStack_4e4 + 1;" (assignment_expression "iStack_4e4 = iStack_4e4 + 1" identifier = (binary_expression "iStack_4e4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar37 != iStack_4e4)" ( (binary_expression "iVar37 != iStack_4e4" identifier != identifier) )) ;) })) (if_statement "if (pIStack_9c != (Image *)**(undefined4 **)(puVar28 + 0x2033d8)) {\n    pcVar29 = *(code **)(puVar28 + 0x20320c);\n    (*pcVar29)();\n    iVar37 = *(int *)(pdVar18 + 1);\n    iVar7 = *(int *)(iVar37 + 0x1c);\n    iVar4 = (**(code **)(pcVar29 + 0x203418))();\n    iVar5 = (**(code **)(pcVar29 + 0x203014))();\n    if (iVar4 == 0) {\n      trap(7);\n    }\n    iVar8 = iVar7 / iVar4;\n    iVar7 = iVar7 % iVar4;\n    if (iVar5 < iVar7) {\n      iVar8 = iVar8 + 1;\n      iVar7 = 0;\n    }\n    iVar7 = iVar8 * iVar5 + iVar7;\n    iVar8 = iVar8 + iVar7;\n    pIVar2 = *(Image **)(pcVar29 + 0x2023d4);\n    if (iVar7 < iVar8) {\n      uVar10 = *(undefined4 *)(pdVar18 + 2);\n      uVar6 = *(undefined4 *)((int)pdVar18 + 0xc);\n      dVar34 = *pdVar18;\n      uVar35 = (ulonglong)*(uint *)(pIVar2[1].magick_filename + 0x390);\n      iVar4 = *(int *)(pcVar29 + 0x2023ec);\n      do {\n        pIVar2 = (Image *)0x1;\n        if (*(int *)((int)pdVar18 + 0x14) != 0) {\n          pfVar16 = (float *)(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6);\n          if (pfVar16 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            pIVar2 = (Image *)0x0;\n          }\n          else {\n            iVar5 = 0;\n            if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }\n            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);\n            if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }\n            pIVar2 = *(Image **)(iVar37 + 0x328);\n            if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar8 != iVar7);\n    }\n    return pIVar2;\n  }" if (parenthesized_expression "(pIStack_9c != (Image *)**(undefined4 **)(puVar28 + 0x2033d8))" ( (binary_expression "pIStack_9c != (Image *)**(undefined4 **)(puVar28 + 0x2033d8)" identifier != (cast_expression "(Image *)**(undefined4 **)(puVar28 + 0x2033d8)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar28 + 0x2033d8)" * (pointer_expression "*(undefined4 **)(puVar28 + 0x2033d8)" * (cast_expression "(undefined4 **)(puVar28 + 0x2033d8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x2033d8)" ( (binary_expression "puVar28 + 0x2033d8" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar29 = *(code **)(puVar28 + 0x20320c);\n    (*pcVar29)();\n    iVar37 = *(int *)(pdVar18 + 1);\n    iVar7 = *(int *)(iVar37 + 0x1c);\n    iVar4 = (**(code **)(pcVar29 + 0x203418))();\n    iVar5 = (**(code **)(pcVar29 + 0x203014))();\n    if (iVar4 == 0) {\n      trap(7);\n    }\n    iVar8 = iVar7 / iVar4;\n    iVar7 = iVar7 % iVar4;\n    if (iVar5 < iVar7) {\n      iVar8 = iVar8 + 1;\n      iVar7 = 0;\n    }\n    iVar7 = iVar8 * iVar5 + iVar7;\n    iVar8 = iVar8 + iVar7;\n    pIVar2 = *(Image **)(pcVar29 + 0x2023d4);\n    if (iVar7 < iVar8) {\n      uVar10 = *(undefined4 *)(pdVar18 + 2);\n      uVar6 = *(undefined4 *)((int)pdVar18 + 0xc);\n      dVar34 = *pdVar18;\n      uVar35 = (ulonglong)*(uint *)(pIVar2[1].magick_filename + 0x390);\n      iVar4 = *(int *)(pcVar29 + 0x2023ec);\n      do {\n        pIVar2 = (Image *)0x1;\n        if (*(int *)((int)pdVar18 + 0x14) != 0) {\n          pfVar16 = (float *)(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6);\n          if (pfVar16 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            pIVar2 = (Image *)0x0;\n          }\n          else {\n            iVar5 = 0;\n            if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }\n            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);\n            if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }\n            pIVar2 = *(Image **)(iVar37 + 0x328);\n            if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar8 != iVar7);\n    }\n    return pIVar2;\n  }" { (expression_statement "pcVar29 = *(code **)(puVar28 + 0x20320c);" (assignment_expression "pcVar29 = *(code **)(puVar28 + 0x20320c)" identifier = (pointer_expression "*(code **)(puVar28 + 0x20320c)" * (cast_expression "(code **)(puVar28 + 0x20320c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x20320c)" ( (binary_expression "puVar28 + 0x20320c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar37 = *(int *)(pdVar18 + 1);" (assignment_expression "iVar37 = *(int *)(pdVar18 + 1)" identifier = (pointer_expression "*(int *)(pdVar18 + 1)" * (cast_expression "(int *)(pdVar18 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 1)" ( (binary_expression "pdVar18 + 1" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(iVar37 + 0x1c);" (assignment_expression "iVar7 = *(int *)(iVar37 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar37 + 0x1c)" * (cast_expression "(int *)(iVar37 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + 0x1c)" ( (binary_expression "iVar37 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = (**(code **)(pcVar29 + 0x203418))();" (assignment_expression "iVar4 = (**(code **)(pcVar29 + 0x203418))()" identifier = (call_expression "(**(code **)(pcVar29 + 0x203418))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x203418))" ( (pointer_expression "**(code **)(pcVar29 + 0x203418)" * (pointer_expression "*(code **)(pcVar29 + 0x203418)" * (cast_expression "(code **)(pcVar29 + 0x203418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x203418)" ( (binary_expression "pcVar29 + 0x203418" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar5 = (**(code **)(pcVar29 + 0x203014))();" (assignment_expression "iVar5 = (**(code **)(pcVar29 + 0x203014))()" identifier = (call_expression "(**(code **)(pcVar29 + 0x203014))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x203014))" ( (pointer_expression "**(code **)(pcVar29 + 0x203014)" * (pointer_expression "*(code **)(pcVar29 + 0x203014)" * (cast_expression "(code **)(pcVar29 + 0x203014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x203014)" ( (binary_expression "pcVar29 + 0x203014" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar4 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar8 = iVar7 / iVar4;" (assignment_expression "iVar8 = iVar7 / iVar4" identifier = (binary_expression "iVar7 / iVar4" identifier / identifier)) ;) (expression_statement "iVar7 = iVar7 % iVar4;" (assignment_expression "iVar7 = iVar7 % iVar4" identifier = (binary_expression "iVar7 % iVar4" identifier % identifier)) ;) (if_statement "if (iVar5 < iVar7) {\n      iVar8 = iVar8 + 1;\n      iVar7 = 0;\n    }" if (parenthesized_expression "(iVar5 < iVar7)" ( (binary_expression "iVar5 < iVar7" identifier < identifier) )) (compound_statement "{\n      iVar8 = iVar8 + 1;\n      iVar7 = 0;\n    }" { (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) })) (expression_statement "iVar7 = iVar8 * iVar5 + iVar7;" (assignment_expression "iVar7 = iVar8 * iVar5 + iVar7" identifier = (binary_expression "iVar8 * iVar5 + iVar7" (binary_expression "iVar8 * iVar5" identifier * identifier) + identifier)) ;) (expression_statement "iVar8 = iVar8 + iVar7;" (assignment_expression "iVar8 = iVar8 + iVar7" identifier = (binary_expression "iVar8 + iVar7" identifier + identifier)) ;) (expression_statement "pIVar2 = *(Image **)(pcVar29 + 0x2023d4);" (assignment_expression "pIVar2 = *(Image **)(pcVar29 + 0x2023d4)" identifier = (pointer_expression "*(Image **)(pcVar29 + 0x2023d4)" * (cast_expression "(Image **)(pcVar29 + 0x2023d4)" ( (type_descriptor "Image **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x2023d4)" ( (binary_expression "pcVar29 + 0x2023d4" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 < iVar8) {\n      uVar10 = *(undefined4 *)(pdVar18 + 2);\n      uVar6 = *(undefined4 *)((int)pdVar18 + 0xc);\n      dVar34 = *pdVar18;\n      uVar35 = (ulonglong)*(uint *)(pIVar2[1].magick_filename + 0x390);\n      iVar4 = *(int *)(pcVar29 + 0x2023ec);\n      do {\n        pIVar2 = (Image *)0x1;\n        if (*(int *)((int)pdVar18 + 0x14) != 0) {\n          pfVar16 = (float *)(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6);\n          if (pfVar16 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            pIVar2 = (Image *)0x0;\n          }\n          else {\n            iVar5 = 0;\n            if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }\n            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);\n            if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }\n            pIVar2 = *(Image **)(iVar37 + 0x328);\n            if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar8 != iVar7);\n    }" if (parenthesized_expression "(iVar7 < iVar8)" ( (binary_expression "iVar7 < iVar8" identifier < identifier) )) (compound_statement "{\n      uVar10 = *(undefined4 *)(pdVar18 + 2);\n      uVar6 = *(undefined4 *)((int)pdVar18 + 0xc);\n      dVar34 = *pdVar18;\n      uVar35 = (ulonglong)*(uint *)(pIVar2[1].magick_filename + 0x390);\n      iVar4 = *(int *)(pcVar29 + 0x2023ec);\n      do {\n        pIVar2 = (Image *)0x1;\n        if (*(int *)((int)pdVar18 + 0x14) != 0) {\n          pfVar16 = (float *)(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6);\n          if (pfVar16 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            pIVar2 = (Image *)0x0;\n          }\n          else {\n            iVar5 = 0;\n            if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }\n            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);\n            if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }\n            pIVar2 = *(Image **)(iVar37 + 0x328);\n            if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar8 != iVar7);\n    }" { (expression_statement "uVar10 = *(undefined4 *)(pdVar18 + 2);" (assignment_expression "uVar10 = *(undefined4 *)(pdVar18 + 2)" identifier = (pointer_expression "*(undefined4 *)(pdVar18 + 2)" * (cast_expression "(undefined4 *)(pdVar18 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar18 + 2)" ( (binary_expression "pdVar18 + 2" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(undefined4 *)((int)pdVar18 + 0xc);" (assignment_expression "uVar6 = *(undefined4 *)((int)pdVar18 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar18 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar18 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + 0xc)" ( (binary_expression "(int)pdVar18 + 0xc" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar34 = *pdVar18;" (assignment_expression "dVar34 = *pdVar18" identifier = (pointer_expression "*pdVar18" * identifier)) ;) (expression_statement "uVar35 = (ulonglong)*(uint *)(pIVar2[1].magick_filename + 0x390);" (assignment_expression "uVar35 = (ulonglong)*(uint *)(pIVar2[1].magick_filename + 0x390)" identifier = (binary_expression "(ulonglong)*(uint *)(pIVar2[1].magick_filename + 0x390)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(pIVar2[1].magick_filename + 0x390)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pIVar2[1].magick_filename + 0x390)" ( (binary_expression "pIVar2[1].magick_filename + 0x390" (field_expression "pIVar2[1].magick_filename" (subscript_expression "pIVar2[1]" identifier [ number_literal ]) . field_identifier) + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(pcVar29 + 0x2023ec);" (assignment_expression "iVar4 = *(int *)(pcVar29 + 0x2023ec)" identifier = (pointer_expression "*(int *)(pcVar29 + 0x2023ec)" * (cast_expression "(int *)(pcVar29 + 0x2023ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x2023ec)" ( (binary_expression "pcVar29 + 0x2023ec" identifier + number_literal) ))))) ;) (do_statement "do {\n        pIVar2 = (Image *)0x1;\n        if (*(int *)((int)pdVar18 + 0x14) != 0) {\n          pfVar16 = (float *)(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6);\n          if (pfVar16 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            pIVar2 = (Image *)0x0;\n          }\n          else {\n            iVar5 = 0;\n            if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }\n            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);\n            if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }\n            pIVar2 = *(Image **)(iVar37 + 0x328);\n            if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar7 = iVar7 + 1;\n      } while (iVar8 != iVar7);" do (compound_statement "{\n        pIVar2 = (Image *)0x1;\n        if (*(int *)((int)pdVar18 + 0x14) != 0) {\n          pfVar16 = (float *)(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6);\n          if (pfVar16 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            pIVar2 = (Image *)0x0;\n          }\n          else {\n            iVar5 = 0;\n            if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }\n            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);\n            if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }\n            pIVar2 = *(Image **)(iVar37 + 0x328);\n            if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar7 = iVar7 + 1;\n      }" { (expression_statement "pIVar2 = (Image *)0x1;" (assignment_expression "pIVar2 = (Image *)0x1" identifier = (cast_expression "(Image *)0x1" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*(int *)((int)pdVar18 + 0x14) != 0) {\n          pfVar16 = (float *)(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6);\n          if (pfVar16 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            pIVar2 = (Image *)0x0;\n          }\n          else {\n            iVar5 = 0;\n            if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }\n            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);\n            if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }\n            pIVar2 = *(Image **)(iVar37 + 0x328);\n            if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(*(int *)((int)pdVar18 + 0x14) != 0)" ( (binary_expression "*(int *)((int)pdVar18 + 0x14) != 0" (pointer_expression "*(int *)((int)pdVar18 + 0x14)" * (cast_expression "(int *)((int)pdVar18 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + 0x14)" ( (binary_expression "(int)pdVar18 + 0x14" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n          pfVar16 = (float *)(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6);\n          if (pfVar16 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            pIVar2 = (Image *)0x0;\n          }\n          else {\n            iVar5 = 0;\n            if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }\n            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);\n            if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }\n            pIVar2 = *(Image **)(iVar37 + 0x328);\n            if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }\n          }\n        }" { (expression_statement "pfVar16 = (float *)(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6);" (assignment_expression "pfVar16 = (float *)(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6)" identifier = (cast_expression "(float *)(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar29 + 0x203158))\n                                       (uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6)" (parenthesized_expression "(**(code **)(pcVar29 + 0x203158))" ( (pointer_expression "**(code **)(pcVar29 + 0x203158)" * (pointer_expression "*(code **)(pcVar29 + 0x203158)" * (cast_expression "(code **)(pcVar29 + 0x203158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x203158)" ( (binary_expression "pcVar29 + 0x203158" identifier + number_literal) ))))) )) (argument_list "(uVar10,0,iVar7,*(undefined4 *)(iVar37 + 0x18),1,uVar6)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar37 + 0x18)" * (cast_expression "(undefined4 *)(iVar37 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + 0x18)" ( (binary_expression "iVar37 + 0x18" identifier + number_literal) )))) , number_literal , identifier ))))) ;) (if_statement "if (pfVar16 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            pIVar2 = (Image *)0x0;\n          }\n          else {\n            iVar5 = 0;\n            if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }\n            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);\n            if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }\n            pIVar2 = *(Image **)(iVar37 + 0x328);\n            if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }\n          }" if (parenthesized_expression "(pfVar16 == (float *)0x0)" ( (binary_expression "pfVar16 == (float *)0x0" identifier == (cast_expression "(float *)0x0" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            pIVar2 = (Image *)0x0;\n          }" { (expression_statement "*(undefined4 *)((int)pdVar18 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar18 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar18 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar18 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + 0x14)" ( (binary_expression "(int)pdVar18 + 0x14" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pIVar2 = (Image *)0x0;" (assignment_expression "pIVar2 = (Image *)0x0" identifier = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            iVar5 = 0;\n            if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }\n            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);\n            if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }\n            pIVar2 = *(Image **)(iVar37 + 0x328);\n            if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }\n          }" else (compound_statement "{\n            iVar5 = 0;\n            if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }\n            iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);\n            if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }\n            pIVar2 = *(Image **)(iVar37 + 0x328);\n            if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }\n          }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (if_statement "if (0 < *(int *)(iVar37 + 0x18)) {\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }" if (parenthesized_expression "(0 < *(int *)(iVar37 + 0x18))" ( (binary_expression "0 < *(int *)(iVar37 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar37 + 0x18)" * (cast_expression "(int *)(iVar37 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + 0x18)" ( (binary_expression "iVar37 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n              do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));\n            }" { (do_statement "do {\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              } while (iVar5 < *(int *)(iVar37 + 0x18));" do (compound_statement "{\n                dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);\n                iVar24 = *(int *)(iVar37 + 0x2c0);\n                if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }\n                pfVar16 = pfVar16 + iVar24;\n                iVar5 = iVar5 + 1;\n              }" { (expression_statement "dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16);" (assignment_expression "dVar33 = (double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16)" identifier = (cast_expression "(double)(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar29 + 0x202964))(iVar37,pfVar16)" (parenthesized_expression "(**(code **)(pcVar29 + 0x202964))" ( (pointer_expression "**(code **)(pcVar29 + 0x202964)" * (pointer_expression "*(code **)(pcVar29 + 0x202964)" * (cast_expression "(code **)(pcVar29 + 0x202964)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x202964)" ( (binary_expression "pcVar29 + 0x202964" identifier + number_literal) ))))) )) (argument_list "(iVar37,pfVar16)" ( identifier , identifier ))))) ;) (expression_statement "iVar24 = *(int *)(iVar37 + 0x2c0);" (assignment_expression "iVar24 = *(int *)(iVar37 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar37 + 0x2c0)" * (cast_expression "(int *)(iVar37 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + 0x2c0)" ( (binary_expression "iVar37 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar24) {\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }" if (parenthesized_expression "(0 < iVar24)" ( (binary_expression "0 < iVar24" number_literal < identifier) )) (compound_statement "{\n                  iVar22 = 0;\n                  iVar25 = 0;\n                  pfVar20 = pfVar16;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);\n                }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "pfVar20 = pfVar16;" (assignment_expression "pfVar20 = pfVar16" identifier = identifier) ;) (do_statement "do {\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  } while (iVar25 < iVar24);" do (compound_statement "{\n                    if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }\n                    iVar25 = iVar25 + 1;\n                    iVar24 = *(int *)(iVar37 + 0x2c0);\n                    iVar22 = iVar22 + 0xc;\n                    pfVar20 = pfVar20 + 1;\n                  }" { (if_statement "if ((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }" if (parenthesized_expression "((*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0)" ( (binary_expression "(*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2)" ( (binary_expression "*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4) & 2" (pointer_expression "*(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4)" * (cast_expression "(uint *)(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4)" ( (binary_expression "*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc + 4" (binary_expression "*(int *)(iVar37 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc" (pointer_expression "*(int *)(iVar37 + 0x2d0)" * (cast_expression "(int *)(iVar37 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + 0x2d0)" ( (binary_expression "iVar37 + 0x2d0" identifier + number_literal) )))) + (binary_expression "*(int *)(*(int *)(iVar37 + 0x2d0) + iVar22) * 0xc" (pointer_expression "*(int *)(*(int *)(iVar37 + 0x2d0) + iVar22)" * (cast_expression "(int *)(*(int *)(iVar37 + 0x2d0) + iVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar37 + 0x2d0) + iVar22)" ( (binary_expression "*(int *)(iVar37 + 0x2d0) + iVar22" (pointer_expression "*(int *)(iVar37 + 0x2d0)" * (cast_expression "(int *)(iVar37 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + 0x2d0)" ( (binary_expression "iVar37 + 0x2d0" identifier + number_literal) )))) + identifier) )))) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                      if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }\n                      if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }\n                    }" { (if_statement "if (*(int *)(iVar37 + 0x2cc) != 0x7ffffff) {\n                        dVar33 = (double)*pfVar20;\n                      }" if (parenthesized_expression "(*(int *)(iVar37 + 0x2cc) != 0x7ffffff)" ( (binary_expression "*(int *)(iVar37 + 0x2cc) != 0x7ffffff" (pointer_expression "*(int *)(iVar37 + 0x2cc)" * (cast_expression "(int *)(iVar37 + 0x2cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + 0x2cc)" ( (binary_expression "iVar37 + 0x2cc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                        dVar33 = (double)*pfVar20;\n                      }" { (expression_statement "dVar33 = (double)*pfVar20;" (assignment_expression "dVar33 = (double)*pfVar20" identifier = (cast_expression "(double)*pfVar20" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar20" * identifier))) ;) })) (if_statement "if (dVar33 <= dVar34) {\n                        *pfVar20 = 0.0;\n                      }\n                      else {\n                        *pfVar20 = (float)uVar35;\n                      }" if (parenthesized_expression "(dVar33 <= dVar34)" ( (binary_expression "dVar33 <= dVar34" identifier <= identifier) )) (compound_statement "{\n                        *pfVar20 = 0.0;\n                      }" { (expression_statement "*pfVar20 = 0.0;" (assignment_expression "*pfVar20 = 0.0" (pointer_expression "*pfVar20" * identifier) = number_literal) ;) }) (else_clause "else {\n                        *pfVar20 = (float)uVar35;\n                      }" else (compound_statement "{\n                        *pfVar20 = (float)uVar35;\n                      }" { (expression_statement "*pfVar20 = (float)uVar35;" (assignment_expression "*pfVar20 = (float)uVar35" (pointer_expression "*pfVar20" * identifier) = (cast_expression "(float)uVar35" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) })) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = *(int *)(iVar37 + 0x2c0);" (assignment_expression "iVar24 = *(int *)(iVar37 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar37 + 0x2c0)" * (cast_expression "(int *)(iVar37 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + 0x2c0)" ( (binary_expression "iVar37 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = iVar22 + 0xc;" (assignment_expression "iVar22 = iVar22 + 0xc" identifier = (binary_expression "iVar22 + 0xc" identifier + number_literal)) ;) (expression_statement "pfVar20 = pfVar20 + 1;" (assignment_expression "pfVar20 = pfVar20 + 1" identifier = (binary_expression "pfVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar25 < iVar24)" ( (binary_expression "iVar25 < iVar24" identifier < identifier) )) ;) })) (expression_statement "pfVar16 = pfVar16 + iVar24;" (assignment_expression "pfVar16 = pfVar16 + iVar24" identifier = (binary_expression "pfVar16 + iVar24" identifier + identifier)) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 < *(int *)(iVar37 + 0x18))" ( (binary_expression "iVar5 < *(int *)(iVar37 + 0x18)" identifier < (pointer_expression "*(int *)(iVar37 + 0x18)" * (cast_expression "(int *)(iVar37 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + 0x18)" ( (binary_expression "iVar37 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6);" (assignment_expression "iVar5 = (**(code **)(pcVar29 + 0x203004))(uVar10,uVar6)" identifier = (call_expression "(**(code **)(pcVar29 + 0x203004))(uVar10,uVar6)" (parenthesized_expression "(**(code **)(pcVar29 + 0x203004))" ( (pointer_expression "**(code **)(pcVar29 + 0x203004)" * (pointer_expression "*(code **)(pcVar29 + 0x203004)" * (cast_expression "(code **)(pcVar29 + 0x203004)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x203004)" ( (binary_expression "pcVar29 + 0x203004" identifier + number_literal) ))))) )) (argument_list "(uVar10,uVar6)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n            }" { (expression_statement "*(undefined4 *)((int)pdVar18 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar18 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar18 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar18 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + 0x14)" ( (binary_expression "(int)pdVar18 + 0x14" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "pIVar2 = *(Image **)(iVar37 + 0x328);" (assignment_expression "pIVar2 = *(Image **)(iVar37 + 0x328)" identifier = (pointer_expression "*(Image **)(iVar37 + 0x328)" * (cast_expression "(Image **)(iVar37 + 0x328)" ( (type_descriptor "Image **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar37 + 0x328)" ( (binary_expression "iVar37 + 0x328" identifier + number_literal) ))))) ;) (if_statement "if (pIVar2 != (Image *)0x0) {\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }" if (parenthesized_expression "(pIVar2 != (Image *)0x0)" ( (binary_expression "pIVar2 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              piVar26 = *(int **)(pdVar18 + 3);\n              (**(code **)(pcVar29 + 0x202df0))();\n              uVar14 = piVar26[1] + 1;\n              *piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;\n              piVar26[1] = uVar14;\n              (**(code **)(pcVar29 + 0x202f44))();\n              piVar26 = *(int **)(pdVar18 + 3);\n              iVar5 = *piVar26;\n              uVar14 = piVar26[1];\n              *piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;\n              piVar26[1] = uVar14 + 1;\n              pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));\n              if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }\n            }" { (expression_statement "piVar26 = *(int **)(pdVar18 + 3);" (assignment_expression "piVar26 = *(int **)(pdVar18 + 3)" identifier = (pointer_expression "*(int **)(pdVar18 + 3)" * (cast_expression "(int **)(pdVar18 + 3)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar18 + 3)" ( (binary_expression "pdVar18 + 3" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar29 + 0x202df0))();" (call_expression "(**(code **)(pcVar29 + 0x202df0))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x202df0))" ( (pointer_expression "**(code **)(pcVar29 + 0x202df0)" * (pointer_expression "*(code **)(pcVar29 + 0x202df0)" * (cast_expression "(code **)(pcVar29 + 0x202df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x202df0)" ( (binary_expression "pcVar29 + 0x202df0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar14 = piVar26[1] + 1;" (assignment_expression "uVar14 = piVar26[1] + 1" identifier = (binary_expression "piVar26[1] + 1" (subscript_expression "piVar26[1]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26;" (assignment_expression "*piVar26 = (uint)(uVar14 < (uint)piVar26[1]) + *piVar26" (pointer_expression "*piVar26" * identifier) = (binary_expression "(uint)(uVar14 < (uint)piVar26[1]) + *piVar26" (call_expression "(uint)(uVar14 < (uint)piVar26[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < (uint)piVar26[1])" ( (binary_expression "uVar14 < (uint)piVar26[1]" identifier < (cast_expression "(uint)piVar26[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar26[1]" identifier [ number_literal ]))) ))) + (pointer_expression "*piVar26" * identifier))) ;) (expression_statement "piVar26[1] = uVar14;" (assignment_expression "piVar26[1] = uVar14" (subscript_expression "piVar26[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(**(code **)(pcVar29 + 0x202f44))();" (call_expression "(**(code **)(pcVar29 + 0x202f44))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x202f44))" ( (pointer_expression "**(code **)(pcVar29 + 0x202f44)" * (pointer_expression "*(code **)(pcVar29 + 0x202f44)" * (cast_expression "(code **)(pcVar29 + 0x202f44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x202f44)" ( (binary_expression "pcVar29 + 0x202f44" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "piVar26 = *(int **)(pdVar18 + 3);" (assignment_expression "piVar26 = *(int **)(pdVar18 + 3)" identifier = (pointer_expression "*(int **)(pdVar18 + 3)" * (cast_expression "(int **)(pdVar18 + 3)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar18 + 3)" ( (binary_expression "pdVar18 + 3" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *piVar26;" (assignment_expression "iVar5 = *piVar26" identifier = (pointer_expression "*piVar26" * identifier)) ;) (expression_statement "uVar14 = piVar26[1];" (assignment_expression "uVar14 = piVar26[1]" identifier = (subscript_expression "piVar26[1]" identifier [ number_literal ])) ;) (expression_statement "*piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5;" (assignment_expression "*piVar26 = (uint)(uVar14 + 1 < uVar14) + iVar5" (pointer_expression "*piVar26" * identifier) = (binary_expression "(uint)(uVar14 + 1 < uVar14) + iVar5" (call_expression "(uint)(uVar14 + 1 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 + 1 < uVar14)" ( (binary_expression "uVar14 + 1 < uVar14" (binary_expression "uVar14 + 1" identifier + number_literal) < identifier) ))) + identifier)) ;) (expression_statement "piVar26[1] = uVar14 + 1;" (assignment_expression "piVar26[1] = uVar14 + 1" (subscript_expression "piVar26[1]" identifier [ number_literal ]) = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c));" (assignment_expression "pIVar2 = (Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c))" identifier = (cast_expression "(Image *)(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c))" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar29 + 0x2027c0))\n                                          (iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c))" (parenthesized_expression "(**(code **)(pcVar29 + 0x2027c0))" ( (pointer_expression "**(code **)(pcVar29 + 0x2027c0)" * (pointer_expression "*(code **)(pcVar29 + 0x2027c0)" * (cast_expression "(code **)(pcVar29 + 0x2027c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x2027c0)" ( (binary_expression "pcVar29 + 0x2027c0" identifier + number_literal) ))))) )) (argument_list "(iVar37,iVar4 + 0xe68,iVar5,uVar14,0,\n                                           *(undefined4 *)(iVar37 + 0x1c))" ( identifier , (binary_expression "iVar4 + 0xe68" identifier + number_literal) , identifier , identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar37 + 0x1c)" * (cast_expression "(undefined4 *)(iVar37 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar37 + 0x1c)" ( (binary_expression "iVar37 + 0x1c" identifier + number_literal) )))) ))))) ;) (if_statement "if (pIVar2 == (Image *)0x0) {\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }" if (parenthesized_expression "(pIVar2 == (Image *)0x0)" ( (binary_expression "pIVar2 == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *(undefined4 *)((int)pdVar18 + 0x14) = 0;\n              }" { (expression_statement "*(undefined4 *)((int)pdVar18 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar18 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar18 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar18 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar18 + 0x14)" ( (binary_expression "(int)pdVar18 + 0x14" (cast_expression "(int)pdVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) })) }))) })) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != iVar7)" ( (binary_expression "iVar8 != iVar7" identifier != identifier) )) ;) })) (return_statement "return pIVar2;" return identifier ;) })) (return_statement "return (Image *)**(undefined4 **)(puVar28 + 0x2033d8);" return (cast_expression "(Image *)**(undefined4 **)(puVar28 + 0x2033d8)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar28 + 0x2033d8)" * (pointer_expression "*(undefined4 **)(puVar28 + 0x2033d8)" * (cast_expression "(undefined4 **)(puVar28 + 0x2033d8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x2033d8)" ( (binary_expression "puVar28 + 0x2033d8" identifier + number_literal) )))))) ;) })))
(translation_unit "int TrimImage(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  double *pdVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  uint uVar14;\n  double *pdVar15;\n  double *pdVar16;\n  double *pdVar17;\n  float *pfVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  double *pdVar28;\n  undefined4 uVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  ulonglong uVar33;\n  undefined8 uVar34;\n  int iVar35;\n  int iStack_4e8;\n  int iStack_4e4;\n  undefined8 uStack_4a0;\n  undefined8 uStack_2a0;\n  int iStack_9c;\n  int iStack_98;\n  int iStack_94;\n  undefined4 uStack_90;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_24;\n  int local_20;\n  int local_1c;\n  int local_18;\n  double *local_14;\n  \n  local_14 = *(double **)PTR___stack_chk_guard_003fa248;\n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x336c) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x3350) != 0) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }\n  (*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2);\n  local_24 = local_38;\n  local_20 = local_34;\n  local_1c = local_30;\n  local_18 = local_2c;\n  if ((local_38 == 0) || (local_34 == 0)) {\n    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);\n    if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }\n  }\n  else {\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }\n  if (local_14 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return iVar1;\n  }\n  pdVar15 = local_14;\n  puVar26 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  iStack_9c = **(int **)(puVar26 + 0x2033d8);\n  pdVar28 = *(double **)(pdVar15 + 2);\n  iStack_4e4 = *(int *)((int)pdVar28 + 0x1c);\n  iStack_98 = param_1;\n  iStack_94 = iVar1;\n  uStack_90 = param_2;\n  iVar1 = (**(code **)(puVar26 + 0x203ab4))();\n  iVar3 = (**(code **)(puVar26 + 0x2036b0))();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar35 = iStack_4e4 / iVar1;\n  iStack_4e4 = iStack_4e4 % iVar1;\n  if (iVar3 < iStack_4e4) {\n    iVar35 = iVar35 + 1;\n    iStack_4e4 = 0;\n  }\n  pdVar16 = (double *)(iVar35 * iVar3);\n  iStack_4e4 = (int)pdVar16 + iStack_4e4;\n  iVar35 = iVar35 + iStack_4e4;\n  if (iStack_4e4 < iVar35) {\n    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);\n    uVar2 = *(undefined4 *)(pdVar15 + 1);\n    iVar3 = *(int *)(pdVar15 + 5);\n    pdVar8 = *(double **)((int)pdVar15 + 0x24);\n    uVar9 = *(undefined4 *)(pdVar15 + 4);\n    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);\n    dVar32 = *pdVar15;\n    pdVar17 = *(double **)(pdVar15 + 3);\n    uVar11 = *(uint *)((int)pdVar15 + 0x14);\n    iVar1 = *(int *)(puVar26 + 0x202a88);\n    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);\n    pdVar16 = pdVar17;\n    do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);\n  }\n  if (iStack_9c != **(int **)(puVar26 + 0x2033d8)) {\n    pcVar27 = *(code **)(puVar26 + 0x20320c);\n    (*pcVar27)();\n    iVar35 = *(int *)(pdVar16 + 1);\n    iVar4 = *(int *)(iVar35 + 0x1c);\n    iVar1 = (**(code **)(pcVar27 + 0x203418))();\n    iVar3 = (**(code **)(pcVar27 + 0x203014))();\n    if (iVar1 == 0) {\n      trap(7);\n    }\n    iVar5 = iVar4 / iVar1;\n    iVar4 = iVar4 % iVar1;\n    if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }\n    iVar4 = iVar5 * iVar3 + iVar4;\n    iVar5 = iVar5 + iVar4;\n    iVar1 = *(int *)(pcVar27 + 0x2023d4);\n    if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }\n    return iVar1;\n  }\n  return **(int **)(puVar26 + 0x2033d8);\n}\n\n" (function_definition "int TrimImage(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  double *pdVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  uint uVar14;\n  double *pdVar15;\n  double *pdVar16;\n  double *pdVar17;\n  float *pfVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  double *pdVar28;\n  undefined4 uVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  ulonglong uVar33;\n  undefined8 uVar34;\n  int iVar35;\n  int iStack_4e8;\n  int iStack_4e4;\n  undefined8 uStack_4a0;\n  undefined8 uStack_2a0;\n  int iStack_9c;\n  int iStack_98;\n  int iStack_94;\n  undefined4 uStack_90;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_24;\n  int local_20;\n  int local_1c;\n  int local_18;\n  double *local_14;\n  \n  local_14 = *(double **)PTR___stack_chk_guard_003fa248;\n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x336c) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x3350) != 0) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }\n  (*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2);\n  local_24 = local_38;\n  local_20 = local_34;\n  local_1c = local_30;\n  local_18 = local_2c;\n  if ((local_38 == 0) || (local_34 == 0)) {\n    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);\n    if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }\n  }\n  else {\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }\n  if (local_14 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return iVar1;\n  }\n  pdVar15 = local_14;\n  puVar26 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  iStack_9c = **(int **)(puVar26 + 0x2033d8);\n  pdVar28 = *(double **)(pdVar15 + 2);\n  iStack_4e4 = *(int *)((int)pdVar28 + 0x1c);\n  iStack_98 = param_1;\n  iStack_94 = iVar1;\n  uStack_90 = param_2;\n  iVar1 = (**(code **)(puVar26 + 0x203ab4))();\n  iVar3 = (**(code **)(puVar26 + 0x2036b0))();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar35 = iStack_4e4 / iVar1;\n  iStack_4e4 = iStack_4e4 % iVar1;\n  if (iVar3 < iStack_4e4) {\n    iVar35 = iVar35 + 1;\n    iStack_4e4 = 0;\n  }\n  pdVar16 = (double *)(iVar35 * iVar3);\n  iStack_4e4 = (int)pdVar16 + iStack_4e4;\n  iVar35 = iVar35 + iStack_4e4;\n  if (iStack_4e4 < iVar35) {\n    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);\n    uVar2 = *(undefined4 *)(pdVar15 + 1);\n    iVar3 = *(int *)(pdVar15 + 5);\n    pdVar8 = *(double **)((int)pdVar15 + 0x24);\n    uVar9 = *(undefined4 *)(pdVar15 + 4);\n    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);\n    dVar32 = *pdVar15;\n    pdVar17 = *(double **)(pdVar15 + 3);\n    uVar11 = *(uint *)((int)pdVar15 + 0x14);\n    iVar1 = *(int *)(puVar26 + 0x202a88);\n    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);\n    pdVar16 = pdVar17;\n    do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);\n  }\n  if (iStack_9c != **(int **)(puVar26 + 0x2033d8)) {\n    pcVar27 = *(code **)(puVar26 + 0x20320c);\n    (*pcVar27)();\n    iVar35 = *(int *)(pdVar16 + 1);\n    iVar4 = *(int *)(iVar35 + 0x1c);\n    iVar1 = (**(code **)(pcVar27 + 0x203418))();\n    iVar3 = (**(code **)(pcVar27 + 0x203014))();\n    if (iVar1 == 0) {\n      trap(7);\n    }\n    iVar5 = iVar4 / iVar1;\n    iVar4 = iVar4 % iVar1;\n    if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }\n    iVar4 = iVar5 * iVar3 + iVar4;\n    iVar5 = iVar5 + iVar4;\n    iVar1 = *(int *)(pcVar27 + 0x2023d4);\n    if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }\n    return iVar1;\n  }\n  return **(int **)(puVar26 + 0x2033d8);\n}" primitive_type (function_declarator "TrimImage(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  double *pdVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  uint uVar14;\n  double *pdVar15;\n  double *pdVar16;\n  double *pdVar17;\n  float *pfVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  double *pdVar28;\n  undefined4 uVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  ulonglong uVar33;\n  undefined8 uVar34;\n  int iVar35;\n  int iStack_4e8;\n  int iStack_4e4;\n  undefined8 uStack_4a0;\n  undefined8 uStack_2a0;\n  int iStack_9c;\n  int iStack_98;\n  int iStack_94;\n  undefined4 uStack_90;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_24;\n  int local_20;\n  int local_1c;\n  int local_18;\n  double *local_14;\n  \n  local_14 = *(double **)PTR___stack_chk_guard_003fa248;\n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x336c) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x3350) != 0) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }\n  (*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2);\n  local_24 = local_38;\n  local_20 = local_34;\n  local_1c = local_30;\n  local_18 = local_2c;\n  if ((local_38 == 0) || (local_34 == 0)) {\n    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);\n    if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }\n  }\n  else {\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }\n  if (local_14 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return iVar1;\n  }\n  pdVar15 = local_14;\n  puVar26 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  iStack_9c = **(int **)(puVar26 + 0x2033d8);\n  pdVar28 = *(double **)(pdVar15 + 2);\n  iStack_4e4 = *(int *)((int)pdVar28 + 0x1c);\n  iStack_98 = param_1;\n  iStack_94 = iVar1;\n  uStack_90 = param_2;\n  iVar1 = (**(code **)(puVar26 + 0x203ab4))();\n  iVar3 = (**(code **)(puVar26 + 0x2036b0))();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar35 = iStack_4e4 / iVar1;\n  iStack_4e4 = iStack_4e4 % iVar1;\n  if (iVar3 < iStack_4e4) {\n    iVar35 = iVar35 + 1;\n    iStack_4e4 = 0;\n  }\n  pdVar16 = (double *)(iVar35 * iVar3);\n  iStack_4e4 = (int)pdVar16 + iStack_4e4;\n  iVar35 = iVar35 + iStack_4e4;\n  if (iStack_4e4 < iVar35) {\n    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);\n    uVar2 = *(undefined4 *)(pdVar15 + 1);\n    iVar3 = *(int *)(pdVar15 + 5);\n    pdVar8 = *(double **)((int)pdVar15 + 0x24);\n    uVar9 = *(undefined4 *)(pdVar15 + 4);\n    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);\n    dVar32 = *pdVar15;\n    pdVar17 = *(double **)(pdVar15 + 3);\n    uVar11 = *(uint *)((int)pdVar15 + 0x14);\n    iVar1 = *(int *)(puVar26 + 0x202a88);\n    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);\n    pdVar16 = pdVar17;\n    do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);\n  }\n  if (iStack_9c != **(int **)(puVar26 + 0x2033d8)) {\n    pcVar27 = *(code **)(puVar26 + 0x20320c);\n    (*pcVar27)();\n    iVar35 = *(int *)(pdVar16 + 1);\n    iVar4 = *(int *)(iVar35 + 0x1c);\n    iVar1 = (**(code **)(pcVar27 + 0x203418))();\n    iVar3 = (**(code **)(pcVar27 + 0x203014))();\n    if (iVar1 == 0) {\n      trap(7);\n    }\n    iVar5 = iVar4 / iVar1;\n    iVar4 = iVar4 % iVar1;\n    if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }\n    iVar4 = iVar5 * iVar3 + iVar4;\n    iVar5 = iVar5 + iVar4;\n    iVar1 = *(int *)(pcVar27 + 0x2023d4);\n    if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }\n    return iVar1;\n  }\n  return **(int **)(puVar26 + 0x2033d8);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "double *pdVar8;" primitive_type (pointer_declarator "*pdVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "float *pfVar13;" primitive_type (pointer_declarator "*pfVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "double *pdVar15;" primitive_type (pointer_declarator "*pdVar15" * identifier) ;) (declaration "double *pdVar16;" primitive_type (pointer_declarator "*pdVar16" * identifier) ;) (declaration "double *pdVar17;" primitive_type (pointer_declarator "*pdVar17" * identifier) ;) (declaration "float *pfVar18;" primitive_type (pointer_declarator "*pfVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "double *pdVar28;" primitive_type (pointer_declarator "*pdVar28" * identifier) ;) (declaration "undefined4 uVar29;" type_identifier identifier ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "double dVar31;" primitive_type identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "ulonglong uVar33;" type_identifier identifier ;) (declaration "undefined8 uVar34;" type_identifier identifier ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "int iStack_4e8;" primitive_type identifier ;) (declaration "int iStack_4e4;" primitive_type identifier ;) (declaration "undefined8 uStack_4a0;" type_identifier identifier ;) (declaration "undefined8 uStack_2a0;" type_identifier identifier ;) (declaration "int iStack_9c;" primitive_type identifier ;) (declaration "int iStack_98;" primitive_type identifier ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "undefined4 uStack_90;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (declaration "int local_18;" primitive_type identifier ;) (declaration "double *local_14;" primitive_type (pointer_declarator "*local_14" * identifier) ;) (expression_statement "local_14 = *(double **)PTR___stack_chk_guard_003fa248;" (assignment_expression "local_14 = *(double **)PTR___stack_chk_guard_003fa248" identifier = (pointer_expression "*(double **)PTR___stack_chk_guard_003fa248" * (cast_expression "(double **)PTR___stack_chk_guard_003fa248" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" identifier = (call_expression "(*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" ( (binary_expression "PTR_UINT_003f98e4 + -0x7b0" identifier + number_literal) , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (if_statement "if (*(int *)(param_1 + 0x336c) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x336c) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x336c)" * (cast_expression "(int *)(param_1 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x336c)" ( (binary_expression "param_1 + 0x336c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" identifier = (call_expression "(*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" ( (binary_expression "PTR_UINT_003f98e4 + -0x784" identifier + number_literal) , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (if_statement "if (*(int *)(param_1 + 0x3350) != 0) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3350) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3350) != 0" (pointer_expression "*(int *)(param_1 + 0x3350)" * (cast_expression "(int *)(param_1 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3350)" ( (binary_expression "param_1 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);" (call_expression "(*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003fa1f8)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003fa1f8" * (cast_expression "(code *)PTR_LogMagickEvent_003fa1f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971)" ( number_literal , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4" identifier + number_literal) , (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "(*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2);" (call_expression "(*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2)" (parenthesized_expression "(*(code *)PTR_GetImageBoundingBox_003fa9a0)" ( (pointer_expression "*(code *)PTR_GetImageBoundingBox_003fa9a0" * (cast_expression "(code *)PTR_GetImageBoundingBox_003fa9a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_38,param_1,param_2)" ( (pointer_expression "&local_38" & identifier) , identifier , identifier ))) ;) (expression_statement "local_24 = local_38;" (assignment_expression "local_24 = local_38" identifier = identifier) ;) (expression_statement "local_20 = local_34;" (assignment_expression "local_20 = local_34" identifier = identifier) ;) (expression_statement "local_1c = local_30;" (assignment_expression "local_1c = local_30" identifier = identifier) ;) (expression_statement "local_18 = local_2c;" (assignment_expression "local_18 = local_2c" identifier = identifier) ;) (if_statement "if ((local_38 == 0) || (local_34 == 0)) {\n    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);\n    if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }\n  }\n  else {\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }" if (parenthesized_expression "((local_38 == 0) || (local_34 == 0))" ( (binary_expression "(local_38 == 0) || (local_34 == 0)" (parenthesized_expression "(local_38 == 0)" ( (binary_expression "local_38 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);\n    if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }\n  }" { (expression_statement "iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);" (assignment_expression "iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1)" identifier = (call_expression "(*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1)" (parenthesized_expression "(*(code *)PTR_CloneImage_003fa848)" ( (pointer_expression "*(code *)PTR_CloneImage_003fa848" * (cast_expression "(code *)PTR_CloneImage_003fa848" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,1,1,1)" ( identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }" { (expression_statement "*(undefined4 *)(iVar1 + 0x90) = 4;" (assignment_expression "*(undefined4 *)(iVar1 + 0x90) = 4" (pointer_expression "*(undefined4 *)(iVar1 + 0x90)" * (cast_expression "(undefined4 *)(iVar1 + 0x90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x90)" ( (binary_expression "iVar1 + 0x90" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0xd4) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xd4) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xd4)" * (cast_expression "(undefined4 *)(iVar1 + 0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xd4)" ( (binary_expression "iVar1 + 0xd4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0xd0) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xd0) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xd0)" * (cast_expression "(undefined4 *)(iVar1 + 0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xd0)" ( (binary_expression "iVar1 + 0xd0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);" (call_expression "(*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2)" (parenthesized_expression "(*(code *)PTR_SetImageBackgroundColor_003f9ea8)" ( (pointer_expression "*(code *)PTR_SetImageBackgroundColor_003f9ea8" * (cast_expression "(code *)PTR_SetImageBackgroundColor_003f9ea8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1,param_2)" ( identifier , identifier ))) ;) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0x22c);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0x22c)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x22c)" * (cast_expression "(undefined4 *)(param_1 + 0x22c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22c)" ( (binary_expression "param_1 + 0x22c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);" (assignment_expression "*(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228)" (pointer_expression "*(undefined4 *)(iVar1 + 0x228)" * (cast_expression "(undefined4 *)(iVar1 + 0x228)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x228)" ( (binary_expression "iVar1 + 0x228" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x228)" * (cast_expression "(undefined4 *)(param_1 + 0x228)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x228)" ( (binary_expression "param_1 + 0x228" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x22c) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + 0x22c) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + 0x22c)" * (cast_expression "(undefined4 *)(iVar1 + 0x22c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x22c)" ( (binary_expression "iVar1 + 0x22c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x230) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar1 + 0x230) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar1 + 0x230)" * (cast_expression "(undefined4 *)(iVar1 + 0x230)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x230)" ( (binary_expression "iVar1 + 0x230" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x234) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar1 + 0x234) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar1 + 0x234)" * (cast_expression "(undefined4 *)(iVar1 + 0x234)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x234)" ( (binary_expression "iVar1 + 0x234" identifier + number_literal) )))) = number_literal) ;) })) }) (else_clause "else {\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }" else (compound_statement "{\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }" { (expression_statement "local_1c = local_30 + *(int *)(param_1 + 0x230);" (assignment_expression "local_1c = local_30 + *(int *)(param_1 + 0x230)" identifier = (binary_expression "local_30 + *(int *)(param_1 + 0x230)" identifier + (pointer_expression "*(int *)(param_1 + 0x230)" * (cast_expression "(int *)(param_1 + 0x230)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x230)" ( (binary_expression "param_1 + 0x230" identifier + number_literal) )))))) ;) (expression_statement "local_18 = local_2c + *(int *)(param_1 + 0x234);" (assignment_expression "local_18 = local_2c + *(int *)(param_1 + 0x234)" identifier = (binary_expression "local_2c + *(int *)(param_1 + 0x234)" identifier + (pointer_expression "*(int *)(param_1 + 0x234)" * (cast_expression "(int *)(param_1 + 0x234)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x234)" ( (binary_expression "param_1 + 0x234" identifier + number_literal) )))))) ;) (expression_statement "iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);" (assignment_expression "iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2)" identifier = (call_expression "(*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2)" (parenthesized_expression "(*(code *)PTR_CropImage_003fa0d0)" ( (pointer_expression "*(code *)PTR_CropImage_003fa0d0" * (cast_expression "(code *)PTR_CropImage_003fa0d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,&local_24,param_2)" ( identifier , (pointer_expression "&local_24" & identifier) , identifier )))) ;) (if_statement "if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }" { (expression_statement "(*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);" (call_expression "(*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24)" (parenthesized_expression "(*(code *)PTR_FUN_003f9ba0)" ( (pointer_expression "*(code *)PTR_FUN_003f9ba0" * (cast_expression "(code *)PTR_FUN_003f9ba0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24)" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x18)" * (cast_expression "(undefined4 *)(param_1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" * (cast_expression "(undefined4 *)(param_1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) , (pointer_expression "&local_24" & identifier) ))) ;) })) }))) (if_statement "if (local_14 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return iVar1;\n  }" if (parenthesized_expression "(local_14 == *(double **)PTR___stack_chk_guard_003fa248)" ( (binary_expression "local_14 == *(double **)PTR___stack_chk_guard_003fa248" identifier == (pointer_expression "*(double **)PTR___stack_chk_guard_003fa248" * (cast_expression "(double **)PTR___stack_chk_guard_003fa248" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar1;\n  }" { (return_statement "return iVar1;" return identifier ;) })) (expression_statement "pdVar15 = local_14;" (assignment_expression "pdVar15 = local_14" identifier = identifier) ;) (expression_statement "puVar26 = PTR___stack_chk_fail_003fa07c;" (assignment_expression "puVar26 = PTR___stack_chk_fail_003fa07c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003fa07c)();" (call_expression "(*(code *)PTR___stack_chk_fail_003fa07c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003fa07c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003fa07c" * (cast_expression "(code *)PTR___stack_chk_fail_003fa07c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_9c = **(int **)(puVar26 + 0x2033d8);" (assignment_expression "iStack_9c = **(int **)(puVar26 + 0x2033d8)" identifier = (pointer_expression "**(int **)(puVar26 + 0x2033d8)" * (pointer_expression "*(int **)(puVar26 + 0x2033d8)" * (cast_expression "(int **)(puVar26 + 0x2033d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2033d8)" ( (binary_expression "puVar26 + 0x2033d8" identifier + number_literal) )))))) ;) (expression_statement "pdVar28 = *(double **)(pdVar15 + 2);" (assignment_expression "pdVar28 = *(double **)(pdVar15 + 2)" identifier = (pointer_expression "*(double **)(pdVar15 + 2)" * (cast_expression "(double **)(pdVar15 + 2)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar15 + 2)" ( (binary_expression "pdVar15 + 2" identifier + number_literal) ))))) ;) (expression_statement "iStack_4e4 = *(int *)((int)pdVar28 + 0x1c);" (assignment_expression "iStack_4e4 = *(int *)((int)pdVar28 + 0x1c)" identifier = (pointer_expression "*(int *)((int)pdVar28 + 0x1c)" * (cast_expression "(int *)((int)pdVar28 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar28 + 0x1c)" ( (binary_expression "(int)pdVar28 + 0x1c" (cast_expression "(int)pdVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iStack_98 = param_1;" (assignment_expression "iStack_98 = param_1" identifier = identifier) ;) (expression_statement "iStack_94 = iVar1;" (assignment_expression "iStack_94 = iVar1" identifier = identifier) ;) (expression_statement "uStack_90 = param_2;" (assignment_expression "uStack_90 = param_2" identifier = identifier) ;) (expression_statement "iVar1 = (**(code **)(puVar26 + 0x203ab4))();" (assignment_expression "iVar1 = (**(code **)(puVar26 + 0x203ab4))()" identifier = (call_expression "(**(code **)(puVar26 + 0x203ab4))()" (parenthesized_expression "(**(code **)(puVar26 + 0x203ab4))" ( (pointer_expression "**(code **)(puVar26 + 0x203ab4)" * (pointer_expression "*(code **)(puVar26 + 0x203ab4)" * (cast_expression "(code **)(puVar26 + 0x203ab4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x203ab4)" ( (binary_expression "puVar26 + 0x203ab4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar3 = (**(code **)(puVar26 + 0x2036b0))();" (assignment_expression "iVar3 = (**(code **)(puVar26 + 0x2036b0))()" identifier = (call_expression "(**(code **)(puVar26 + 0x2036b0))()" (parenthesized_expression "(**(code **)(puVar26 + 0x2036b0))" ( (pointer_expression "**(code **)(puVar26 + 0x2036b0)" * (pointer_expression "*(code **)(puVar26 + 0x2036b0)" * (cast_expression "(code **)(puVar26 + 0x2036b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2036b0)" ( (binary_expression "puVar26 + 0x2036b0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar35 = iStack_4e4 / iVar1;" (assignment_expression "iVar35 = iStack_4e4 / iVar1" identifier = (binary_expression "iStack_4e4 / iVar1" identifier / identifier)) ;) (expression_statement "iStack_4e4 = iStack_4e4 % iVar1;" (assignment_expression "iStack_4e4 = iStack_4e4 % iVar1" identifier = (binary_expression "iStack_4e4 % iVar1" identifier % identifier)) ;) (if_statement "if (iVar3 < iStack_4e4) {\n    iVar35 = iVar35 + 1;\n    iStack_4e4 = 0;\n  }" if (parenthesized_expression "(iVar3 < iStack_4e4)" ( (binary_expression "iVar3 < iStack_4e4" identifier < identifier) )) (compound_statement "{\n    iVar35 = iVar35 + 1;\n    iStack_4e4 = 0;\n  }" { (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "iStack_4e4 = 0;" (assignment_expression "iStack_4e4 = 0" identifier = number_literal) ;) })) (expression_statement "pdVar16 = (double *)(iVar35 * iVar3);" (assignment_expression "pdVar16 = (double *)(iVar35 * iVar3)" identifier = (cast_expression "(double *)(iVar35 * iVar3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 * iVar3)" ( (binary_expression "iVar35 * iVar3" identifier * identifier) )))) ;) (expression_statement "iStack_4e4 = (int)pdVar16 + iStack_4e4;" (assignment_expression "iStack_4e4 = (int)pdVar16 + iStack_4e4" identifier = (binary_expression "(int)pdVar16 + iStack_4e4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "iVar35 = iVar35 + iStack_4e4;" (assignment_expression "iVar35 = iVar35 + iStack_4e4" identifier = (binary_expression "iVar35 + iStack_4e4" identifier + identifier)) ;) (if_statement "if (iStack_4e4 < iVar35) {\n    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);\n    uVar2 = *(undefined4 *)(pdVar15 + 1);\n    iVar3 = *(int *)(pdVar15 + 5);\n    pdVar8 = *(double **)((int)pdVar15 + 0x24);\n    uVar9 = *(undefined4 *)(pdVar15 + 4);\n    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);\n    dVar32 = *pdVar15;\n    pdVar17 = *(double **)(pdVar15 + 3);\n    uVar11 = *(uint *)((int)pdVar15 + 0x14);\n    iVar1 = *(int *)(puVar26 + 0x202a88);\n    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);\n    pdVar16 = pdVar17;\n    do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);\n  }" if (parenthesized_expression "(iStack_4e4 < iVar35)" ( (binary_expression "iStack_4e4 < iVar35" identifier < identifier) )) (compound_statement "{\n    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);\n    uVar2 = *(undefined4 *)(pdVar15 + 1);\n    iVar3 = *(int *)(pdVar15 + 5);\n    pdVar8 = *(double **)((int)pdVar15 + 0x24);\n    uVar9 = *(undefined4 *)(pdVar15 + 4);\n    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);\n    dVar32 = *pdVar15;\n    pdVar17 = *(double **)(pdVar15 + 3);\n    uVar11 = *(uint *)((int)pdVar15 + 0x14);\n    iVar1 = *(int *)(puVar26 + 0x202a88);\n    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);\n    pdVar16 = pdVar17;\n    do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);\n  }" { (expression_statement "uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);" (assignment_expression "uVar7 = *(undefined4 *)((int)pdVar15 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar15 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar15 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar15 + 0xc)" ( (binary_expression "(int)pdVar15 + 0xc" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined4 *)(pdVar15 + 1);" (assignment_expression "uVar2 = *(undefined4 *)(pdVar15 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar15 + 1)" * (cast_expression "(undefined4 *)(pdVar15 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar15 + 1)" ( (binary_expression "pdVar15 + 1" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(pdVar15 + 5);" (assignment_expression "iVar3 = *(int *)(pdVar15 + 5)" identifier = (pointer_expression "*(int *)(pdVar15 + 5)" * (cast_expression "(int *)(pdVar15 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar15 + 5)" ( (binary_expression "pdVar15 + 5" identifier + number_literal) ))))) ;) (expression_statement "pdVar8 = *(double **)((int)pdVar15 + 0x24);" (assignment_expression "pdVar8 = *(double **)((int)pdVar15 + 0x24)" identifier = (pointer_expression "*(double **)((int)pdVar15 + 0x24)" * (cast_expression "(double **)((int)pdVar15 + 0x24)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pdVar15 + 0x24)" ( (binary_expression "(int)pdVar15 + 0x24" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(pdVar15 + 4);" (assignment_expression "uVar9 = *(undefined4 *)(pdVar15 + 4)" identifier = (pointer_expression "*(undefined4 *)(pdVar15 + 4)" * (cast_expression "(undefined4 *)(pdVar15 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar15 + 4)" ( (binary_expression "pdVar15 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);" (assignment_expression "uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar15 + 0x1c)" * (cast_expression "(undefined4 *)((int)pdVar15 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar15 + 0x1c)" ( (binary_expression "(int)pdVar15 + 0x1c" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar32 = *pdVar15;" (assignment_expression "dVar32 = *pdVar15" identifier = (pointer_expression "*pdVar15" * identifier)) ;) (expression_statement "pdVar17 = *(double **)(pdVar15 + 3);" (assignment_expression "pdVar17 = *(double **)(pdVar15 + 3)" identifier = (pointer_expression "*(double **)(pdVar15 + 3)" * (cast_expression "(double **)(pdVar15 + 3)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar15 + 3)" ( (binary_expression "pdVar15 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(uint *)((int)pdVar15 + 0x14);" (assignment_expression "uVar11 = *(uint *)((int)pdVar15 + 0x14)" identifier = (pointer_expression "*(uint *)((int)pdVar15 + 0x14)" * (cast_expression "(uint *)((int)pdVar15 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar15 + 0x14)" ( (binary_expression "(int)pdVar15 + 0x14" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(puVar26 + 0x202a88);" (assignment_expression "iVar1 = *(int *)(puVar26 + 0x202a88)" identifier = (pointer_expression "*(int *)(puVar26 + 0x202a88)" * (cast_expression "(int *)(puVar26 + 0x202a88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x202a88)" ( (binary_expression "puVar26 + 0x202a88" identifier + number_literal) ))))) ;) (expression_statement "uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);" (assignment_expression "uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8)" identifier = (binary_expression "(ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar26 + 0x202a70) + 0x4aa8)" ( (binary_expression "*(int *)(puVar26 + 0x202a70) + 0x4aa8" (pointer_expression "*(int *)(puVar26 + 0x202a70)" * (cast_expression "(int *)(puVar26 + 0x202a70)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x202a70)" ( (binary_expression "puVar26 + 0x202a70" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pdVar16 = pdVar17;" (assignment_expression "pdVar16 = pdVar17" identifier = identifier) ;) (do_statement "do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);" do (compound_statement "{\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    }" { (if_statement "if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)((int)pdVar15 + 0x2c) != 0)" ( (binary_expression "*(int *)((int)pdVar15 + 0x2c) != 0" (pointer_expression "*(int *)((int)pdVar15 + 0x2c)" * (cast_expression "(int *)((int)pdVar15 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar15 + 0x2c)" ( (binary_expression "(int)pdVar15 + 0x2c" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }" { (expression_statement "iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10)" identifier = (call_expression "(**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10)" (parenthesized_expression "(**(code **)(puVar26 + 0x203804))" ( (pointer_expression "**(code **)(puVar26 + 0x203804)" * (pointer_expression "*(code **)(puVar26 + 0x203804)" * (cast_expression "(code **)(puVar26 + 0x203804)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x203804)" ( (binary_expression "puVar26 + 0x203804" identifier + number_literal) ))))) )) (argument_list "(uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10)" ( identifier , (unary_expression "-((int)uVar11 / 2)" - (parenthesized_expression "((int)uVar11 / 2)" ( (binary_expression "(int)uVar11 / 2" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) / number_literal) ))) , (binary_expression "iStack_4e4 - ((uint)pdVar17 >> 1)" identifier - (parenthesized_expression "((uint)pdVar17 >> 1)" ( (binary_expression "(uint)pdVar17 >> 1" (cast_expression "(uint)pdVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "uVar11 + *(int *)(pdVar28 + 3)" identifier + (pointer_expression "*(int *)(pdVar28 + 3)" * (cast_expression "(int *)(pdVar28 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 3)" ( (binary_expression "pdVar28 + 3" identifier + number_literal) ))))) , identifier , identifier )))) ;) (expression_statement "pdVar16 = pdVar8;" (assignment_expression "pdVar16 = pdVar8" identifier = identifier) ;) (expression_statement "iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);" (assignment_expression "iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10)" identifier = (call_expression "(**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10)" (parenthesized_expression "(**(code **)(puVar26 + 0x202df8))" ( (pointer_expression "**(code **)(puVar26 + 0x202df8)" * (pointer_expression "*(code **)(puVar26 + 0x202df8)" * (cast_expression "(code **)(puVar26 + 0x202df8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x202df8)" ( (binary_expression "puVar26 + 0x202df8" identifier + number_literal) ))))) )) (argument_list "(pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" * (cast_expression "(undefined4 *)(iVar3 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }" if (parenthesized_expression "((iVar4 == 0) || (iVar5 == 0))" ( (binary_expression "(iVar4 == 0) || (iVar5 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }" { (expression_statement "*(undefined4 *)((int)pdVar15 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar15 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar15 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdVar15 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar15 + 0x2c)" ( (binary_expression "(int)pdVar15 + 0x2c" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }" else (compound_statement "{\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }" { (expression_statement "iVar23 = *(int *)(pdVar28 + 0x58);" (assignment_expression "iVar23 = *(int *)(pdVar28 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar28 + 0x58)" * (cast_expression "(int *)(pdVar28 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x58)" ( (binary_expression "pdVar28 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;" (assignment_expression "iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23" identifier = (binary_expression "((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23" (parenthesized_expression "((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1))" ( (binary_expression "(uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)" (binary_expression "(uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1)" (parenthesized_expression "(uVar11 + *(int *)(pdVar28 + 3))" ( (binary_expression "uVar11 + *(int *)(pdVar28 + 3)" identifier + (pointer_expression "*(int *)(pdVar28 + 3)" * (cast_expression "(int *)(pdVar28 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 3)" ( (binary_expression "pdVar28 + 3" identifier + number_literal) ))))) )) * (parenthesized_expression "((uint)pdVar17 >> 1)" ( (binary_expression "(uint)pdVar17 >> 1" (cast_expression "(uint)pdVar17" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) + (parenthesized_expression "(uVar11 >> 1)" ( (binary_expression "uVar11 >> 1" identifier >> number_literal) ))) )) * identifier)) ;) (if_statement "if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }" if (parenthesized_expression "(0 < iVar23)" ( (binary_expression "0 < iVar23" number_literal < identifier) )) (compound_statement "{\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }" { (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);" do (compound_statement "{\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            }" { (expression_statement "iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);" (assignment_expression "iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21)" identifier = (pointer_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar21)" * (cast_expression "(int *)(*(int *)(pdVar28 + 0x5a) + iVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar28 + 0x5a) + iVar21)" ( (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar21" (pointer_expression "*(int *)(pdVar28 + 0x5a)" * (cast_expression "(int *)(pdVar28 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x5a)" ( (binary_expression "pdVar28 + 0x5a" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "iVar6 = iVar19 * 0xc;" (assignment_expression "iVar6 = iVar19 * 0xc" identifier = (binary_expression "iVar19 * 0xc" identifier * number_literal)) ;) (if_statement "if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }" if (parenthesized_expression "((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0))" ( (binary_expression "(*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)" (parenthesized_expression "(*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0)" ( (binary_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4)" * (cast_expression "(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar28 + 0x5a) + iVar6 + 4)" ( (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar6 + 4" (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar6" (pointer_expression "*(int *)(pdVar28 + 0x5a)" * (cast_expression "(int *)(pdVar28 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x5a)" ( (binary_expression "pdVar28 + 0x5a" identifier + number_literal) )))) + identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)" ( (comma_expression "uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0" (assignment_expression "uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4)" * (cast_expression "(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x2d0) + iVar6 + 4)" ( (binary_expression "*(int *)(iVar3 + 0x2d0) + iVar6 + 4" (binary_expression "*(int *)(iVar3 + 0x2d0) + iVar6" (pointer_expression "*(int *)(iVar3 + 0x2d0)" * (cast_expression "(int *)(iVar3 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2d0)" ( (binary_expression "iVar3 + 0x2d0" identifier + number_literal) )))) + identifier) + number_literal) ))))) , (binary_expression "uVar14 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }" { (if_statement "if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }" if (parenthesized_expression "((uVar14 & 1) == 0)" ( (binary_expression "(uVar14 & 1) == 0" (parenthesized_expression "(uVar14 & 1)" ( (binary_expression "uVar14 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }" { (expression_statement "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0" (pointer_expression "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4)" * (cast_expression "(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_4a0 + iVar19 * 8 + 4)" ( (binary_expression "(int)&uStack_4a0 + iVar19 * 8 + 4" (binary_expression "(int)&uStack_4a0 + iVar19 * 8" (cast_expression "(int)&uStack_4a0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_4a0" & identifier)) + (binary_expression "iVar19 * 8" identifier * number_literal)) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&uStack_4a0 + iVar19) = 0;" (assignment_expression "*(undefined4 *)(&uStack_4a0 + iVar19) = 0" (pointer_expression "*(undefined4 *)(&uStack_4a0 + iVar19)" * (cast_expression "(undefined4 *)(&uStack_4a0 + iVar19)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&uStack_4a0 + iVar19)" ( (binary_expression "&uStack_4a0 + iVar19" (pointer_expression "&uStack_4a0" & identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0" (pointer_expression "*(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4)" * (cast_expression "(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_2a0 + iVar19 * 8 + 4)" ( (binary_expression "(int)&uStack_2a0 + iVar19 * 8 + 4" (binary_expression "(int)&uStack_2a0 + iVar19 * 8" (cast_expression "(int)&uStack_2a0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_2a0" & identifier)) + (binary_expression "iVar19 * 8" identifier * number_literal)) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&uStack_2a0 + iVar19) = 0;" (assignment_expression "*(undefined4 *)(&uStack_2a0 + iVar19) = 0" (pointer_expression "*(undefined4 *)(&uStack_2a0 + iVar19)" * (cast_expression "(undefined4 *)(&uStack_2a0 + iVar19)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&uStack_2a0 + iVar19)" ( (binary_expression "&uStack_2a0 + iVar19" (pointer_expression "&uStack_2a0" & identifier) + identifier) )))) = number_literal) ;) (if_statement "if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }" if (parenthesized_expression "(0 < (int)pdVar17)" ( (binary_expression "0 < (int)pdVar17" number_literal < (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }" { (expression_statement "pdVar16 = (double *)0x0;" (assignment_expression "pdVar16 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = iVar4;" (assignment_expression "iVar6 = iVar4" identifier = identifier) ;) (do_statement "do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);" do (compound_statement "{\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    }" { (expression_statement "pfVar13 = (float *)(iVar6 + iVar20 * 4);" (assignment_expression "pfVar13 = (float *)(iVar6 + iVar20 * 4)" identifier = (cast_expression "(float *)(iVar6 + iVar20 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar20 * 4)" ( (binary_expression "iVar6 + iVar20 * 4" identifier + (binary_expression "iVar20 * 4" identifier * number_literal)) )))) ;) (if_statement "if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }" if (parenthesized_expression "(0 < (int)uVar11)" ( (binary_expression "0 < (int)uVar11" number_literal < (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }" { (expression_statement "dVar31 = (double)(&uStack_2a0)[iVar19];" (assignment_expression "dVar31 = (double)(&uStack_2a0)[iVar19]" identifier = (cast_expression "(double)(&uStack_2a0)[iVar19]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ]))) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);" do (compound_statement "{\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        }" { (if_statement "if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }" if (parenthesized_expression "(uVar11 - 1 == uVar14)" ( (binary_expression "uVar11 - 1 == uVar14" (binary_expression "uVar11 - 1" identifier - number_literal) == identifier) )) (compound_statement "{\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }" { (expression_statement "(&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;" (assignment_expression "(&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13" (subscript_expression "(&uStack_4a0)[iVar19]" (parenthesized_expression "(&uStack_4a0)" ( (pointer_expression "&uStack_4a0" & identifier) )) [ identifier ]) = (binary_expression "(double)(&uStack_4a0)[iVar19] + (double)*pfVar13" (cast_expression "(double)(&uStack_4a0)[iVar19]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_4a0)[iVar19]" (parenthesized_expression "(&uStack_4a0)" ( (pointer_expression "&uStack_4a0" & identifier) )) [ identifier ])) + (cast_expression "(double)*pfVar13" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar13" * identifier)))) ;) })) (expression_statement "dVar31 = dVar31 + (double)*pfVar13;" (assignment_expression "dVar31 = dVar31 + (double)*pfVar13" identifier = (binary_expression "dVar31 + (double)*pfVar13" identifier + (cast_expression "(double)*pfVar13" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar13" * identifier)))) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "pfVar13 = pfVar13 + iVar23;" (assignment_expression "pfVar13 = pfVar13 + iVar23" identifier = (binary_expression "pfVar13 + iVar23" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar11 != uVar14)" ( (binary_expression "uVar11 != uVar14" identifier != identifier) )) ;) (expression_statement "iVar6 = iVar6 + uVar11 * iVar23 * 4;" (assignment_expression "iVar6 = iVar6 + uVar11 * iVar23 * 4" identifier = (binary_expression "iVar6 + uVar11 * iVar23 * 4" identifier + (binary_expression "uVar11 * iVar23 * 4" (binary_expression "uVar11 * iVar23" identifier * identifier) * number_literal))) ;) (expression_statement "(&uStack_2a0)[iVar19] = dVar31;" (assignment_expression "(&uStack_2a0)[iVar19] = dVar31" (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ]) = identifier) ;) })) (expression_statement "pdVar16 = (double *)((int)pdVar16 + 1);" (assignment_expression "pdVar16 = (double *)((int)pdVar16 + 1)" identifier = (cast_expression "(double *)((int)pdVar16 + 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 1)" ( (binary_expression "(int)pdVar16 + 1" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;" (assignment_expression "iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6" identifier = (binary_expression "*(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6" (binary_expression "*(int *)(pdVar28 + 3) * 4 * iVar23" (binary_expression "*(int *)(pdVar28 + 3) * 4" (pointer_expression "*(int *)(pdVar28 + 3)" * (cast_expression "(int *)(pdVar28 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 3)" ( (binary_expression "pdVar28 + 3" identifier + number_literal) )))) * number_literal) * identifier) + identifier)) ;) }) while (parenthesized_expression "(pdVar16 != pdVar17)" ( (binary_expression "pdVar16 != pdVar17" identifier != identifier) )) ;) })) }) (else_clause "else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }" else (compound_statement "{\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }" { (expression_statement "iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;" (assignment_expression "iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6" identifier = (binary_expression "*(int *)(iVar3 + 0x2d0) + iVar6" (pointer_expression "*(int *)(iVar3 + 0x2d0)" * (cast_expression "(int *)(iVar3 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2d0)" ( (binary_expression "iVar3 + 0x2d0" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }" if (parenthesized_expression "(*(int *)(iVar6 + 4) != 0)" ( (binary_expression "*(int *)(iVar6 + 4) != 0" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }" { (expression_statement "*(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);" (assignment_expression "*(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4)" (pointer_expression "*(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + *(int *)(iVar6 + 8) * 4)" ( (binary_expression "iVar5 + *(int *)(iVar6 + 8) * 4" identifier + (binary_expression "*(int *)(iVar6 + 8) * 4" (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4)" * (cast_expression "(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar20 * 4 + iVar22 * 4)" ( (binary_expression "iVar4 + iVar20 * 4 + iVar22 * 4" (binary_expression "iVar4 + iVar20 * 4" identifier + (binary_expression "iVar20 * 4" identifier * number_literal)) + (binary_expression "iVar22 * 4" identifier * number_literal)) ))))) ;) })) }))) })) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "iVar23 = *(int *)(pdVar28 + 0x58);" (assignment_expression "iVar23 = *(int *)(pdVar28 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar28 + 0x58)" * (cast_expression "(int *)(pdVar28 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x58)" ( (binary_expression "pdVar28 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = iVar21 + 0xc;" (assignment_expression "iVar21 = iVar21 + 0xc" identifier = (binary_expression "iVar21 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 < iVar23)" ( (binary_expression "iVar20 < iVar23" identifier < identifier) )) ;) })) (if_statement "if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }" if (parenthesized_expression "(0 < *(int *)(pdVar28 + 3))" ( (binary_expression "0 < *(int *)(pdVar28 + 3)" number_literal < (pointer_expression "*(int *)(pdVar28 + 3)" * (cast_expression "(int *)(pdVar28 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 3)" ( (binary_expression "pdVar28 + 3" identifier + number_literal) ))))) )) (compound_statement "{\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }" { (expression_statement "iStack_4e8 = 0;" (assignment_expression "iStack_4e8 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = 0;" (assignment_expression "uVar34 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));" do (compound_statement "{\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            }" { (expression_statement "iVar23 = *(int *)(pdVar28 + 0x58);" (assignment_expression "iVar23 = *(int *)(pdVar28 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar28 + 0x58)" * (cast_expression "(int *)(pdVar28 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x58)" ( (binary_expression "pdVar28 + 0x58" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }" if (parenthesized_expression "(0 < iVar23)" ( (binary_expression "0 < iVar23" number_literal < identifier) )) (compound_statement "{\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }" { (expression_statement "iVar20 = iVar4 + iVar22 * 4;" (assignment_expression "iVar20 = iVar4 + iVar22 * 4" identifier = (binary_expression "iVar4 + iVar22 * 4" identifier + (binary_expression "iVar22 * 4" identifier * number_literal))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);" do (compound_statement "{\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                }" { (expression_statement "iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);" (assignment_expression "iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6)" identifier = (pointer_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6)" * (cast_expression "(int *)(*(int *)(pdVar28 + 0x5a) + iVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar28 + 0x5a) + iVar6)" ( (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar6" (pointer_expression "*(int *)(pdVar28 + 0x5a)" * (cast_expression "(int *)(pdVar28 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x5a)" ( (binary_expression "pdVar28 + 0x5a" identifier + number_literal) )))) + identifier) ))))) ;) (if_statement "if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }" if (parenthesized_expression "(*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0)" ( (binary_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4)" * (cast_expression "(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4)" ( (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4" (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc" (pointer_expression "*(int *)(pdVar28 + 0x5a)" * (cast_expression "(int *)(pdVar28 + 0x5a)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x5a)" ( (binary_expression "pdVar28 + 0x5a" identifier + number_literal) )))) + (binary_expression "iVar19 * 0xc" identifier * number_literal)) + number_literal) )))) != number_literal) )) (compound_statement "{\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }" { (expression_statement "iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;" (assignment_expression "iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc" identifier = (binary_expression "*(int *)(iVar3 + 0x2d0) + iVar19 * 0xc" (pointer_expression "*(int *)(iVar3 + 0x2d0)" * (cast_expression "(int *)(iVar3 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2d0)" ( (binary_expression "iVar3 + 0x2d0" identifier + number_literal) )))) + (binary_expression "iVar19 * 0xc" identifier * number_literal))) ;) (if_statement "if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }" if (parenthesized_expression "(*(uint *)(iVar25 + 4) != 0)" ( (binary_expression "*(uint *)(iVar25 + 4) != 0" (pointer_expression "*(uint *)(iVar25 + 4)" * (cast_expression "(uint *)(iVar25 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }" { (if_statement "if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }" if (parenthesized_expression "((*(uint *)(iVar25 + 4) & 1) == 0)" ( (binary_expression "(*(uint *)(iVar25 + 4) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar25 + 4) & 1)" ( (binary_expression "*(uint *)(iVar25 + 4) & 1" (pointer_expression "*(uint *)(iVar25 + 4)" * (cast_expression "(uint *)(iVar25 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 4)" ( (binary_expression "iVar25 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }" { (expression_statement "dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];" (assignment_expression "dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19]" identifier = (binary_expression "(double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19]" (cast_expression "(double)(&uStack_2a0)[iVar19]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ])) - (cast_expression "(double)(&uStack_4a0)[iVar19]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_4a0)[iVar19]" (parenthesized_expression "(&uStack_4a0)" ( (pointer_expression "&uStack_4a0" & identifier) )) [ identifier ])))) ;) (expression_statement "(&uStack_2a0)[iVar19] = dVar31;" (assignment_expression "(&uStack_2a0)[iVar19] = dVar31" (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0" (pointer_expression "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4)" * (cast_expression "(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_4a0 + iVar19 * 8 + 4)" ( (binary_expression "(int)&uStack_4a0 + iVar19 * 8 + 4" (binary_expression "(int)&uStack_4a0 + iVar19 * 8" (cast_expression "(int)&uStack_4a0" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_4a0" & identifier)) + (binary_expression "iVar19 * 8" identifier * number_literal)) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&uStack_4a0 + iVar19) = 0;" (assignment_expression "*(undefined4 *)(&uStack_4a0 + iVar19) = 0" (pointer_expression "*(undefined4 *)(&uStack_4a0 + iVar19)" * (cast_expression "(undefined4 *)(&uStack_4a0 + iVar19)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&uStack_4a0 + iVar19)" ( (binary_expression "&uStack_4a0 + iVar19" (pointer_expression "&uStack_4a0" & identifier) + identifier) )))) = number_literal) ;) (if_statement "if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }" if (parenthesized_expression "(0 < (int)pdVar17)" ( (binary_expression "0 < (int)pdVar17" number_literal < (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }" { (expression_statement "iVar12 = (uVar11 - 1) * 4 * iVar23;" (assignment_expression "iVar12 = (uVar11 - 1) * 4 * iVar23" identifier = (binary_expression "(uVar11 - 1) * 4 * iVar23" (binary_expression "(uVar11 - 1) * 4" (parenthesized_expression "(uVar11 - 1)" ( (binary_expression "uVar11 - 1" identifier - number_literal) )) * number_literal) * identifier)) ;) (expression_statement "iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;" (assignment_expression "iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12" identifier = (binary_expression "(*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12" (binary_expression "(*(int *)(pdVar28 + 3) + 1) * 4 * iVar23" (binary_expression "(*(int *)(pdVar28 + 3) + 1) * 4" (parenthesized_expression "(*(int *)(pdVar28 + 3) + 1)" ( (binary_expression "*(int *)(pdVar28 + 3) + 1" (pointer_expression "*(int *)(pdVar28 + 3)" * (cast_expression "(int *)(pdVar28 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 3)" ( (binary_expression "pdVar28 + 3" identifier + number_literal) )))) + number_literal) )) * number_literal) * identifier) + identifier)) ;) (expression_statement "pfVar18 = (float *)(iVar4 + iVar21 * 4);" (assignment_expression "pfVar18 = (float *)(iVar4 + iVar21 * 4)" identifier = (cast_expression "(float *)(iVar4 + iVar21 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar21 * 4)" ( (binary_expression "iVar4 + iVar21 * 4" identifier + (binary_expression "iVar21 * 4" identifier * number_literal)) )))) ;) (expression_statement "pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);" (assignment_expression "pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4)" identifier = (cast_expression "(float *)(iVar4 + iVar12 + iVar21 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar12 + iVar21 * 4)" ( (binary_expression "iVar4 + iVar12 + iVar21 * 4" (binary_expression "iVar4 + iVar12" identifier + identifier) + (binary_expression "iVar21 * 4" identifier * number_literal)) )))) ;) (expression_statement "dVar30 = 0.0;" (assignment_expression "dVar30 = 0.0" identifier = number_literal) ;) (expression_statement "pdVar16 = (double *)0x0;" (assignment_expression "pdVar16 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);" do (compound_statement "{\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          }" { (expression_statement "dVar30 = dVar30 + (double)*pfVar18;" (assignment_expression "dVar30 = dVar30 + (double)*pfVar18" identifier = (binary_expression "dVar30 + (double)*pfVar18" identifier + (cast_expression "(double)*pfVar18" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar18" * identifier)))) ;) (expression_statement "dVar31 = dVar31 + (double)*pfVar13;" (assignment_expression "dVar31 = dVar31 + (double)*pfVar13" identifier = (binary_expression "dVar31 + (double)*pfVar13" identifier + (cast_expression "(double)*pfVar13" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar13" * identifier)))) ;) (expression_statement "pdVar16 = (double *)((int)pdVar16 + 1);" (assignment_expression "pdVar16 = (double *)((int)pdVar16 + 1)" identifier = (cast_expression "(double *)((int)pdVar16 + 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 1)" ( (binary_expression "(int)pdVar16 + 1" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pfVar18 = (float *)((int)pfVar18 + iVar23);" (assignment_expression "pfVar18 = (float *)((int)pfVar18 + iVar23)" identifier = (cast_expression "(float *)((int)pfVar18 + iVar23)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pfVar18 + iVar23)" ( (binary_expression "(int)pfVar18 + iVar23" (cast_expression "(int)pfVar18" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pfVar13 = (float *)((int)pfVar13 + iVar23);" (assignment_expression "pfVar13 = (float *)((int)pfVar13 + iVar23)" identifier = (cast_expression "(float *)((int)pfVar13 + iVar23)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pfVar13 + iVar23)" ( (binary_expression "(int)pfVar13 + iVar23" (cast_expression "(int)pfVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) while (parenthesized_expression "(pdVar16 != pdVar17)" ( (binary_expression "pdVar16 != pdVar17" identifier != identifier) )) ;) (expression_statement "(&uStack_4a0)[iVar19] = dVar30;" (assignment_expression "(&uStack_4a0)[iVar19] = dVar30" (subscript_expression "(&uStack_4a0)[iVar19]" (parenthesized_expression "(&uStack_4a0)" ( (pointer_expression "&uStack_4a0" & identifier) )) [ identifier ]) = identifier) ;) (expression_statement "(&uStack_2a0)[iVar19] = dVar31;" (assignment_expression "(&uStack_2a0)[iVar19] = dVar31" (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ]) = identifier) ;) })) (expression_statement "dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);" (assignment_expression "dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7)" identifier = (cast_expression "(double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7)" (parenthesized_expression "(**(code **)(puVar26 + 0x202a90))" ( (pointer_expression "**(code **)(puVar26 + 0x202a90)" * (pointer_expression "*(code **)(puVar26 + 0x202a90)" * (cast_expression "(code **)(puVar26 + 0x202a90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x202a90)" ( (binary_expression "puVar26 + 0x202a90" identifier + number_literal) ))))) )) (argument_list "(uVar2,uVar7)" ( identifier , identifier ))))) ;) (expression_statement "uVar29 = (undefined4)uVar34;" (assignment_expression "uVar29 = (undefined4)uVar34" identifier = (cast_expression "(undefined4)uVar34" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }" if (parenthesized_expression "((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32)" ( (binary_expression "(double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32" (cast_expression "(double)*(float *)(iVar20 + iVar21 * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(iVar20 + iVar21 * 4)" * (cast_expression "(float *)(iVar20 + iVar21 * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + iVar21 * 4)" ( (binary_expression "iVar20 + iVar21 * 4" identifier + (binary_expression "iVar21 * 4" identifier * number_literal)) ))))) <= (binary_expression "(double)(&uStack_2a0)[iVar19] / dVar31 + dVar32" (binary_expression "(double)(&uStack_2a0)[iVar19] / dVar31" (cast_expression "(double)(&uStack_2a0)[iVar19]" ( (type_descriptor "double" primitive_type) ) (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" ( (pointer_expression "&uStack_2a0" & identifier) )) [ identifier ])) / identifier) + identifier)) )) (compound_statement "{\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }" { (expression_statement "iVar23 = *(int *)(iVar25 + 8);" (assignment_expression "iVar23 = *(int *)(iVar25 + 8)" identifier = (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }" else (compound_statement "{\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }" { (expression_statement "uVar29 = (undefined4)uVar33;" (assignment_expression "uVar29 = (undefined4)uVar33" identifier = (cast_expression "(undefined4)uVar33" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "iVar23 = *(int *)(iVar25 + 8);" (assignment_expression "iVar23 = *(int *)(iVar25 + 8)" identifier = (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) ))))) ;) }))) (expression_statement "*(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;" (assignment_expression "*(undefined4 *)(iVar5 + iVar23 * 4) = uVar29" (pointer_expression "*(undefined4 *)(iVar5 + iVar23 * 4)" * (cast_expression "(undefined4 *)(iVar5 + iVar23 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + iVar23 * 4)" ( (binary_expression "iVar5 + iVar23 * 4" identifier + (binary_expression "iVar23 * 4" identifier * number_literal)) )))) = identifier) ;) }) (else_clause "else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }" else (compound_statement "{\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }" { (expression_statement "*(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);" (assignment_expression "*(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4)" (pointer_expression "*(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + *(int *)(iVar25 + 8) * 4)" ( (binary_expression "iVar5 + *(int *)(iVar25 + 8) * 4" identifier + (binary_expression "*(int *)(iVar25 + 8) * 4" (pointer_expression "*(int *)(iVar25 + 8)" * (cast_expression "(int *)(iVar25 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 8)" ( (binary_expression "iVar25 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*(undefined4 *)(iVar20 + iVar21 * 4)" * (cast_expression "(undefined4 *)(iVar20 + iVar21 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + iVar21 * 4)" ( (binary_expression "iVar20 + iVar21 * 4" identifier + (binary_expression "iVar21 * 4" identifier * number_literal)) ))))) ;) }))) })) })) (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (expression_statement "iVar23 = *(int *)(pdVar28 + 0x58);" (assignment_expression "iVar23 = *(int *)(pdVar28 + 0x58)" identifier = (pointer_expression "*(int *)(pdVar28 + 0x58)" * (cast_expression "(int *)(pdVar28 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x58)" ( (binary_expression "pdVar28 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = iVar6 + 0xc;" (assignment_expression "iVar6 = iVar6 + 0xc" identifier = (binary_expression "iVar6 + 0xc" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar21 < iVar23)" ( (binary_expression "iVar21 < iVar23" identifier < identifier) )) ;) })) (expression_statement "iVar4 = iVar4 + iVar23 * 4;" (assignment_expression "iVar4 = iVar4 + iVar23 * 4" identifier = (binary_expression "iVar4 + iVar23 * 4" identifier + (binary_expression "iVar23 * 4" identifier * number_literal))) ;) (expression_statement "iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;" (assignment_expression "iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4" identifier = (binary_expression "iVar5 + *(int *)(iVar3 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar3 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar3 + 0x2c0)" * (cast_expression "(int *)(iVar3 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c0)" ( (binary_expression "iVar3 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "iStack_4e8 = iStack_4e8 + 1;" (assignment_expression "iStack_4e8 = iStack_4e8 + 1" identifier = (binary_expression "iStack_4e8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_4e8 < *(int *)(pdVar28 + 3))" ( (binary_expression "iStack_4e8 < *(int *)(pdVar28 + 3)" identifier < (pointer_expression "*(int *)(pdVar28 + 3)" * (cast_expression "(int *)(pdVar28 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 3)" ( (binary_expression "pdVar28 + 3" identifier + number_literal) ))))) )) ;) })) (expression_statement "pdVar16 = pdVar8;" (assignment_expression "pdVar16 = pdVar8" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10)" identifier = (call_expression "(**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10)" (parenthesized_expression "(**(code **)(puVar26 + 0x2036a0))" ( (pointer_expression "**(code **)(puVar26 + 0x2036a0)" * (pointer_expression "*(code **)(puVar26 + 0x2036a0)" * (cast_expression "(code **)(puVar26 + 0x2036a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2036a0)" ( (binary_expression "puVar26 + 0x2036a0" identifier + number_literal) ))))) )) (argument_list "(pdVar8,uVar10)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }" { (expression_statement "*(undefined4 *)((int)pdVar15 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar15 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar15 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdVar15 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar15 + 0x2c)" ( (binary_expression "(int)pdVar15 + 0x2c" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (if_statement "if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }" if (parenthesized_expression "(*(int *)(pdVar28 + 0x65) != 0)" ( (binary_expression "*(int *)(pdVar28 + 0x65) != 0" (pointer_expression "*(int *)(pdVar28 + 0x65)" * (cast_expression "(int *)(pdVar28 + 0x65)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 0x65)" ( (binary_expression "pdVar28 + 0x65" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }" { (expression_statement "piVar24 = *(int **)(pdVar15 + 6);" (assignment_expression "piVar24 = *(int **)(pdVar15 + 6)" identifier = (pointer_expression "*(int **)(pdVar15 + 6)" * (cast_expression "(int **)(pdVar15 + 6)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar15 + 6)" ( (binary_expression "pdVar15 + 6" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar26 + 0x20348c))();" (call_expression "(**(code **)(puVar26 + 0x20348c))()" (parenthesized_expression "(**(code **)(puVar26 + 0x20348c))" ( (pointer_expression "**(code **)(puVar26 + 0x20348c)" * (pointer_expression "*(code **)(puVar26 + 0x20348c)" * (cast_expression "(code **)(puVar26 + 0x20348c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x20348c)" ( (binary_expression "puVar26 + 0x20348c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar14 = piVar24[1] + 1;" (assignment_expression "uVar14 = piVar24[1] + 1" identifier = (binary_expression "piVar24[1] + 1" (subscript_expression "piVar24[1]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;" (assignment_expression "*piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24" (pointer_expression "*piVar24" * identifier) = (binary_expression "(uint)(uVar14 < (uint)piVar24[1]) + *piVar24" (call_expression "(uint)(uVar14 < (uint)piVar24[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < (uint)piVar24[1])" ( (binary_expression "uVar14 < (uint)piVar24[1]" identifier < (cast_expression "(uint)piVar24[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar24[1]" identifier [ number_literal ]))) ))) + (pointer_expression "*piVar24" * identifier))) ;) (expression_statement "piVar24[1] = uVar14;" (assignment_expression "piVar24[1] = uVar14" (subscript_expression "piVar24[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(**(code **)(puVar26 + 0x2035e0))();" (call_expression "(**(code **)(puVar26 + 0x2035e0))()" (parenthesized_expression "(**(code **)(puVar26 + 0x2035e0))" ( (pointer_expression "**(code **)(puVar26 + 0x2035e0)" * (pointer_expression "*(code **)(puVar26 + 0x2035e0)" * (cast_expression "(code **)(puVar26 + 0x2035e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2035e0)" ( (binary_expression "puVar26 + 0x2035e0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pdVar16 = pdVar28;" (assignment_expression "pdVar16 = pdVar28" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c))" identifier = (call_expression "(**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c))" (parenthesized_expression "(**(code **)(puVar26 + 0x202e5c))" ( (pointer_expression "**(code **)(puVar26 + 0x202e5c)" * (pointer_expression "*(code **)(puVar26 + 0x202e5c)" * (cast_expression "(code **)(puVar26 + 0x202e5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x202e5c)" ( (binary_expression "puVar26 + 0x202e5c" identifier + number_literal) ))))) )) (argument_list "(pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c))" ( identifier , (binary_expression "iVar1 + 0xe60" identifier + number_literal) , (pointer_expression "**(undefined4 **)(pdVar15 + 6)" * (pointer_expression "*(undefined4 **)(pdVar15 + 6)" * (cast_expression "(undefined4 **)(pdVar15 + 6)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar15 + 6)" ( (binary_expression "pdVar15 + 6" identifier + number_literal) ))))) , (subscript_expression "(*(undefined4 **)(pdVar15 + 6))[1]" (parenthesized_expression "(*(undefined4 **)(pdVar15 + 6))" ( (pointer_expression "*(undefined4 **)(pdVar15 + 6)" * (cast_expression "(undefined4 **)(pdVar15 + 6)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar15 + 6)" ( (binary_expression "pdVar15 + 6" identifier + number_literal) )))) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)((int)pdVar28 + 0x1c)" * (cast_expression "(undefined4 *)((int)pdVar28 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar28 + 0x1c)" ( (binary_expression "(int)pdVar28 + 0x1c" (cast_expression "(int)pdVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }" { (expression_statement "*(undefined4 *)((int)pdVar15 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar15 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar15 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdVar15 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar15 + 0x2c)" ( (binary_expression "(int)pdVar15 + 0x2c" (cast_expression "(int)pdVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) })) }))) })) (expression_statement "iStack_4e4 = iStack_4e4 + 1;" (assignment_expression "iStack_4e4 = iStack_4e4 + 1" identifier = (binary_expression "iStack_4e4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar35 != iStack_4e4)" ( (binary_expression "iVar35 != iStack_4e4" identifier != identifier) )) ;) })) (if_statement "if (iStack_9c != **(int **)(puVar26 + 0x2033d8)) {\n    pcVar27 = *(code **)(puVar26 + 0x20320c);\n    (*pcVar27)();\n    iVar35 = *(int *)(pdVar16 + 1);\n    iVar4 = *(int *)(iVar35 + 0x1c);\n    iVar1 = (**(code **)(pcVar27 + 0x203418))();\n    iVar3 = (**(code **)(pcVar27 + 0x203014))();\n    if (iVar1 == 0) {\n      trap(7);\n    }\n    iVar5 = iVar4 / iVar1;\n    iVar4 = iVar4 % iVar1;\n    if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }\n    iVar4 = iVar5 * iVar3 + iVar4;\n    iVar5 = iVar5 + iVar4;\n    iVar1 = *(int *)(pcVar27 + 0x2023d4);\n    if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }\n    return iVar1;\n  }" if (parenthesized_expression "(iStack_9c != **(int **)(puVar26 + 0x2033d8))" ( (binary_expression "iStack_9c != **(int **)(puVar26 + 0x2033d8)" identifier != (pointer_expression "**(int **)(puVar26 + 0x2033d8)" * (pointer_expression "*(int **)(puVar26 + 0x2033d8)" * (cast_expression "(int **)(puVar26 + 0x2033d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2033d8)" ( (binary_expression "puVar26 + 0x2033d8" identifier + number_literal) )))))) )) (compound_statement "{\n    pcVar27 = *(code **)(puVar26 + 0x20320c);\n    (*pcVar27)();\n    iVar35 = *(int *)(pdVar16 + 1);\n    iVar4 = *(int *)(iVar35 + 0x1c);\n    iVar1 = (**(code **)(pcVar27 + 0x203418))();\n    iVar3 = (**(code **)(pcVar27 + 0x203014))();\n    if (iVar1 == 0) {\n      trap(7);\n    }\n    iVar5 = iVar4 / iVar1;\n    iVar4 = iVar4 % iVar1;\n    if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }\n    iVar4 = iVar5 * iVar3 + iVar4;\n    iVar5 = iVar5 + iVar4;\n    iVar1 = *(int *)(pcVar27 + 0x2023d4);\n    if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }\n    return iVar1;\n  }" { (expression_statement "pcVar27 = *(code **)(puVar26 + 0x20320c);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0x20320c)" identifier = (pointer_expression "*(code **)(puVar26 + 0x20320c)" * (cast_expression "(code **)(puVar26 + 0x20320c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x20320c)" ( (binary_expression "puVar26 + 0x20320c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar35 = *(int *)(pdVar16 + 1);" (assignment_expression "iVar35 = *(int *)(pdVar16 + 1)" identifier = (pointer_expression "*(int *)(pdVar16 + 1)" * (cast_expression "(int *)(pdVar16 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 1)" ( (binary_expression "pdVar16 + 1" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(iVar35 + 0x1c);" (assignment_expression "iVar4 = *(int *)(iVar35 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar35 + 0x1c)" * (cast_expression "(int *)(iVar35 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x1c)" ( (binary_expression "iVar35 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = (**(code **)(pcVar27 + 0x203418))();" (assignment_expression "iVar1 = (**(code **)(pcVar27 + 0x203418))()" identifier = (call_expression "(**(code **)(pcVar27 + 0x203418))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x203418))" ( (pointer_expression "**(code **)(pcVar27 + 0x203418)" * (pointer_expression "*(code **)(pcVar27 + 0x203418)" * (cast_expression "(code **)(pcVar27 + 0x203418)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x203418)" ( (binary_expression "pcVar27 + 0x203418" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar3 = (**(code **)(pcVar27 + 0x203014))();" (assignment_expression "iVar3 = (**(code **)(pcVar27 + 0x203014))()" identifier = (call_expression "(**(code **)(pcVar27 + 0x203014))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x203014))" ( (pointer_expression "**(code **)(pcVar27 + 0x203014)" * (pointer_expression "*(code **)(pcVar27 + 0x203014)" * (cast_expression "(code **)(pcVar27 + 0x203014)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x203014)" ( (binary_expression "pcVar27 + 0x203014" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar5 = iVar4 / iVar1;" (assignment_expression "iVar5 = iVar4 / iVar1" identifier = (binary_expression "iVar4 / iVar1" identifier / identifier)) ;) (expression_statement "iVar4 = iVar4 % iVar1;" (assignment_expression "iVar4 = iVar4 % iVar1" identifier = (binary_expression "iVar4 % iVar1" identifier % identifier)) ;) (if_statement "if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }" if (parenthesized_expression "(iVar3 < iVar4)" ( (binary_expression "iVar3 < iVar4" identifier < identifier) )) (compound_statement "{\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) })) (expression_statement "iVar4 = iVar5 * iVar3 + iVar4;" (assignment_expression "iVar4 = iVar5 * iVar3 + iVar4" identifier = (binary_expression "iVar5 * iVar3 + iVar4" (binary_expression "iVar5 * iVar3" identifier * identifier) + identifier)) ;) (expression_statement "iVar5 = iVar5 + iVar4;" (assignment_expression "iVar5 = iVar5 + iVar4" identifier = (binary_expression "iVar5 + iVar4" identifier + identifier)) ;) (expression_statement "iVar1 = *(int *)(pcVar27 + 0x2023d4);" (assignment_expression "iVar1 = *(int *)(pcVar27 + 0x2023d4)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x2023d4)" * (cast_expression "(int *)(pcVar27 + 0x2023d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2023d4)" ( (binary_expression "pcVar27 + 0x2023d4" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }" if (parenthesized_expression "(iVar4 < iVar5)" ( (binary_expression "iVar4 < iVar5" identifier < identifier) )) (compound_statement "{\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }" { (expression_statement "uVar7 = *(undefined4 *)(pdVar16 + 2);" (assignment_expression "uVar7 = *(undefined4 *)(pdVar16 + 2)" identifier = (pointer_expression "*(undefined4 *)(pdVar16 + 2)" * (cast_expression "(undefined4 *)(pdVar16 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 2)" ( (binary_expression "pdVar16 + 2" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);" (assignment_expression "uVar2 = *(undefined4 *)((int)pdVar16 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar16 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar16 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0xc)" ( (binary_expression "(int)pdVar16 + 0xc" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dVar32 = *pdVar16;" (assignment_expression "dVar32 = *pdVar16" identifier = (pointer_expression "*pdVar16" * identifier)) ;) (expression_statement "uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);" (assignment_expression "uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8)" identifier = (binary_expression "(ulonglong)*(uint *)(iVar1 + 0x4aa8)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar1 + 0x4aa8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x4aa8)" ( (binary_expression "iVar1 + 0x4aa8" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(pcVar27 + 0x2023ec);" (assignment_expression "iVar3 = *(int *)(pcVar27 + 0x2023ec)" identifier = (pointer_expression "*(int *)(pcVar27 + 0x2023ec)" * (cast_expression "(int *)(pcVar27 + 0x2023ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0x2023ec)" ( (binary_expression "pcVar27 + 0x2023ec" identifier + number_literal) ))))) ;) (do_statement "do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);" do (compound_statement "{\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      }" { (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) (if_statement "if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(*(int *)((int)pdVar16 + 0x14) != 0)" ( (binary_expression "*(int *)((int)pdVar16 + 0x14) != 0" (pointer_expression "*(int *)((int)pdVar16 + 0x14)" * (cast_expression "(int *)((int)pdVar16 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x14)" ( (binary_expression "(int)pdVar16 + 0x14" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }" { (expression_statement "pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);" (assignment_expression "pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2)" identifier = (cast_expression "(float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x203158))" ( (pointer_expression "**(code **)(pcVar27 + 0x203158)" * (pointer_expression "*(code **)(pcVar27 + 0x203158)" * (cast_expression "(code **)(pcVar27 + 0x203158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x203158)" ( (binary_expression "pcVar27 + 0x203158" identifier + number_literal) ))))) )) (argument_list "(uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar35 + 0x18)" * (cast_expression "(undefined4 *)(iVar35 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x18)" ( (binary_expression "iVar35 + 0x18" identifier + number_literal) )))) , number_literal , identifier ))))) ;) (if_statement "if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }" if (parenthesized_expression "(pfVar13 == (float *)0x0)" ( (binary_expression "pfVar13 == (float *)0x0" identifier == (cast_expression "(float *)0x0" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }" { (expression_statement "*(undefined4 *)((int)pdVar16 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar16 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar16 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x14)" ( (binary_expression "(int)pdVar16 + 0x14" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }" else (compound_statement "{\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (if_statement "if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }" if (parenthesized_expression "(0 < *(int *)(iVar35 + 0x18))" ( (binary_expression "0 < *(int *)(iVar35 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar35 + 0x18)" * (cast_expression "(int *)(iVar35 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x18)" ( (binary_expression "iVar35 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }" { (do_statement "do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));" do (compound_statement "{\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              }" { (expression_statement "dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);" (assignment_expression "dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13)" identifier = (cast_expression "(double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13)" (parenthesized_expression "(**(code **)(pcVar27 + 0x202964))" ( (pointer_expression "**(code **)(pcVar27 + 0x202964)" * (pointer_expression "*(code **)(pcVar27 + 0x202964)" * (cast_expression "(code **)(pcVar27 + 0x202964)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x202964)" ( (binary_expression "pcVar27 + 0x202964" identifier + number_literal) ))))) )) (argument_list "(iVar35,pfVar13)" ( identifier , identifier ))))) ;) (expression_statement "iVar22 = *(int *)(iVar35 + 0x2c0);" (assignment_expression "iVar22 = *(int *)(iVar35 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar35 + 0x2c0)" * (cast_expression "(int *)(iVar35 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x2c0)" ( (binary_expression "iVar35 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }" if (parenthesized_expression "(0 < iVar22)" ( (binary_expression "0 < iVar22" number_literal < identifier) )) (compound_statement "{\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "pfVar18 = pfVar13;" (assignment_expression "pfVar18 = pfVar13" identifier = identifier) ;) (do_statement "do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);" do (compound_statement "{\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  }" { (if_statement "if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }" if (parenthesized_expression "((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)" ( (binary_expression "(*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2)" ( (binary_expression "*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2" (pointer_expression "*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4)" * (cast_expression "(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4)" ( (binary_expression "*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4" (binary_expression "*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc" (pointer_expression "*(int *)(iVar35 + 0x2d0)" * (cast_expression "(int *)(iVar35 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x2d0)" ( (binary_expression "iVar35 + 0x2d0" identifier + number_literal) )))) + (binary_expression "*(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc" (pointer_expression "*(int *)(*(int *)(iVar35 + 0x2d0) + iVar20)" * (cast_expression "(int *)(*(int *)(iVar35 + 0x2d0) + iVar20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar35 + 0x2d0) + iVar20)" ( (binary_expression "*(int *)(iVar35 + 0x2d0) + iVar20" (pointer_expression "*(int *)(iVar35 + 0x2d0)" * (cast_expression "(int *)(iVar35 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x2d0)" ( (binary_expression "iVar35 + 0x2d0" identifier + number_literal) )))) + identifier) )))) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }" { (if_statement "if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }" if (parenthesized_expression "(*(int *)(iVar35 + 0x2cc) != 0x7ffffff)" ( (binary_expression "*(int *)(iVar35 + 0x2cc) != 0x7ffffff" (pointer_expression "*(int *)(iVar35 + 0x2cc)" * (cast_expression "(int *)(iVar35 + 0x2cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x2cc)" ( (binary_expression "iVar35 + 0x2cc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                        dVar31 = (double)*pfVar18;\n                      }" { (expression_statement "dVar31 = (double)*pfVar18;" (assignment_expression "dVar31 = (double)*pfVar18" identifier = (cast_expression "(double)*pfVar18" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*pfVar18" * identifier))) ;) })) (if_statement "if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }" if (parenthesized_expression "(dVar31 <= dVar32)" ( (binary_expression "dVar31 <= dVar32" identifier <= identifier) )) (compound_statement "{\n                        *pfVar18 = 0.0;\n                      }" { (expression_statement "*pfVar18 = 0.0;" (assignment_expression "*pfVar18 = 0.0" (pointer_expression "*pfVar18" * identifier) = number_literal) ;) }) (else_clause "else {\n                        *pfVar18 = (float)uVar33;\n                      }" else (compound_statement "{\n                        *pfVar18 = (float)uVar33;\n                      }" { (expression_statement "*pfVar18 = (float)uVar33;" (assignment_expression "*pfVar18 = (float)uVar33" (pointer_expression "*pfVar18" * identifier) = (cast_expression "(float)uVar33" ( (type_descriptor "float" primitive_type) ) identifier)) ;) }))) })) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "iVar22 = *(int *)(iVar35 + 0x2c0);" (assignment_expression "iVar22 = *(int *)(iVar35 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar35 + 0x2c0)" * (cast_expression "(int *)(iVar35 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x2c0)" ( (binary_expression "iVar35 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = iVar20 + 0xc;" (assignment_expression "iVar20 = iVar20 + 0xc" identifier = (binary_expression "iVar20 + 0xc" identifier + number_literal)) ;) (expression_statement "pfVar18 = pfVar18 + 1;" (assignment_expression "pfVar18 = pfVar18 + 1" identifier = (binary_expression "pfVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar23 < iVar22)" ( (binary_expression "iVar23 < iVar22" identifier < identifier) )) ;) })) (expression_statement "pfVar13 = pfVar13 + iVar22;" (assignment_expression "pfVar13 = pfVar13 + iVar22" identifier = (binary_expression "pfVar13 + iVar22" identifier + identifier)) ;) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 < *(int *)(iVar35 + 0x18))" ( (binary_expression "iVar1 < *(int *)(iVar35 + 0x18)" identifier < (pointer_expression "*(int *)(iVar35 + 0x18)" * (cast_expression "(int *)(iVar35 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x18)" ( (binary_expression "iVar35 + 0x18" identifier + number_literal) ))))) )) ;) })) (expression_statement "iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);" (assignment_expression "iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2)" identifier = (call_expression "(**(code **)(pcVar27 + 0x203004))(uVar7,uVar2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x203004))" ( (pointer_expression "**(code **)(pcVar27 + 0x203004)" * (pointer_expression "*(code **)(pcVar27 + 0x203004)" * (cast_expression "(code **)(pcVar27 + 0x203004)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x203004)" ( (binary_expression "pcVar27 + 0x203004" identifier + number_literal) ))))) )) (argument_list "(uVar7,uVar2)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }" { (expression_statement "*(undefined4 *)((int)pdVar16 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar16 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar16 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x14)" ( (binary_expression "(int)pdVar16 + 0x14" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (expression_statement "iVar1 = *(int *)(iVar35 + 0x328);" (assignment_expression "iVar1 = *(int *)(iVar35 + 0x328)" identifier = (pointer_expression "*(int *)(iVar35 + 0x328)" * (cast_expression "(int *)(iVar35 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x328)" ( (binary_expression "iVar35 + 0x328" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }" { (expression_statement "piVar24 = *(int **)(pdVar16 + 3);" (assignment_expression "piVar24 = *(int **)(pdVar16 + 3)" identifier = (pointer_expression "*(int **)(pdVar16 + 3)" * (cast_expression "(int **)(pdVar16 + 3)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar16 + 3)" ( (binary_expression "pdVar16 + 3" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar27 + 0x202df0))();" (call_expression "(**(code **)(pcVar27 + 0x202df0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x202df0))" ( (pointer_expression "**(code **)(pcVar27 + 0x202df0)" * (pointer_expression "*(code **)(pcVar27 + 0x202df0)" * (cast_expression "(code **)(pcVar27 + 0x202df0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x202df0)" ( (binary_expression "pcVar27 + 0x202df0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar11 = piVar24[1] + 1;" (assignment_expression "uVar11 = piVar24[1] + 1" identifier = (binary_expression "piVar24[1] + 1" (subscript_expression "piVar24[1]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;" (assignment_expression "*piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24" (pointer_expression "*piVar24" * identifier) = (binary_expression "(uint)(uVar11 < (uint)piVar24[1]) + *piVar24" (call_expression "(uint)(uVar11 < (uint)piVar24[1])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < (uint)piVar24[1])" ( (binary_expression "uVar11 < (uint)piVar24[1]" identifier < (cast_expression "(uint)piVar24[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar24[1]" identifier [ number_literal ]))) ))) + (pointer_expression "*piVar24" * identifier))) ;) (expression_statement "piVar24[1] = uVar11;" (assignment_expression "piVar24[1] = uVar11" (subscript_expression "piVar24[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(**(code **)(pcVar27 + 0x202f44))();" (call_expression "(**(code **)(pcVar27 + 0x202f44))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x202f44))" ( (pointer_expression "**(code **)(pcVar27 + 0x202f44)" * (pointer_expression "*(code **)(pcVar27 + 0x202f44)" * (cast_expression "(code **)(pcVar27 + 0x202f44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x202f44)" ( (binary_expression "pcVar27 + 0x202f44" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "piVar24 = *(int **)(pdVar16 + 3);" (assignment_expression "piVar24 = *(int **)(pdVar16 + 3)" identifier = (pointer_expression "*(int **)(pdVar16 + 3)" * (cast_expression "(int **)(pdVar16 + 3)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pdVar16 + 3)" ( (binary_expression "pdVar16 + 3" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *piVar24;" (assignment_expression "iVar1 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (expression_statement "uVar11 = piVar24[1];" (assignment_expression "uVar11 = piVar24[1]" identifier = (subscript_expression "piVar24[1]" identifier [ number_literal ])) ;) (expression_statement "*piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;" (assignment_expression "*piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1" (pointer_expression "*piVar24" * identifier) = (binary_expression "(uint)(uVar11 + 1 < uVar11) + iVar1" (call_expression "(uint)(uVar11 + 1 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 + 1 < uVar11)" ( (binary_expression "uVar11 + 1 < uVar11" (binary_expression "uVar11 + 1" identifier + number_literal) < identifier) ))) + identifier)) ;) (expression_statement "piVar24[1] = uVar11 + 1;" (assignment_expression "piVar24[1] = uVar11 + 1" (subscript_expression "piVar24[1]" identifier [ number_literal ]) = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;" (assignment_expression "iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))" identifier = (call_expression "(**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))" (parenthesized_expression "(**(code **)(pcVar27 + 0x2027c0))" ( (pointer_expression "**(code **)(pcVar27 + 0x2027c0)" * (pointer_expression "*(code **)(pcVar27 + 0x2027c0)" * (cast_expression "(code **)(pcVar27 + 0x2027c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x2027c0)" ( (binary_expression "pcVar27 + 0x2027c0" identifier + number_literal) ))))) )) (argument_list "(iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))" ( identifier , (binary_expression "iVar3 + 0xe68" identifier + number_literal) , identifier , identifier , number_literal , (pointer_expression "*(undefined4 *)(iVar35 + 0x1c)" * (cast_expression "(undefined4 *)(iVar35 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 0x1c)" ( (binary_expression "iVar35 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }" { (expression_statement "*(undefined4 *)((int)pdVar16 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar16 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar16 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0x14)" ( (binary_expression "(int)pdVar16 + 0x14" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) })) }))) })) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != iVar4)" ( (binary_expression "iVar5 != iVar4" identifier != identifier) )) ;) })) (return_statement "return iVar1;" return identifier ;) })) (return_statement "return **(int **)(puVar26 + 0x2033d8);" return (pointer_expression "**(int **)(puVar26 + 0x2033d8)" * (pointer_expression "*(int **)(puVar26 + 0x2033d8)" * (cast_expression "(int **)(puVar26 + 0x2033d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2033d8)" ( (binary_expression "puVar26 + 0x2033d8" identifier + number_literal) ))))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , 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 (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_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 ( 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) )))) , (pointer_expression & IDENT) ))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (unary_expression - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / LIT) ))) , (binary_expression IDENT - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) * (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (binary_expression IDENT * IDENT) * LIT))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) * IDENT) + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (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)) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + (binary_expression IDENT * LIT)) ))))) ;) })) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (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) )))) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * 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 { (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) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )) * LIT) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) <= (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) / IDENT) + IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) }))) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_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 + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) + (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) })) })) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * 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 IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (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 < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (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) )))) + IDENT) )))) * LIT)) + LIT) )))) & LIT) )) != 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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) + (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) < IDENT) ))) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) })) })) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return IDENT ;) })) (return_statement return (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })))
(function_definition "int TrimImage(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  double *pdVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  uint uVar14;\n  double *pdVar15;\n  double *pdVar16;\n  double *pdVar17;\n  float *pfVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  double *pdVar28;\n  undefined4 uVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  ulonglong uVar33;\n  undefined8 uVar34;\n  int iVar35;\n  int iStack_4e8;\n  int iStack_4e4;\n  undefined8 uStack_4a0;\n  undefined8 uStack_2a0;\n  int iStack_9c;\n  int iStack_98;\n  int iStack_94;\n  undefined4 uStack_90;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_24;\n  int local_20;\n  int local_1c;\n  int local_18;\n  double *local_14;\n  \n  local_14 = *(double **)PTR___stack_chk_guard_003fa248;\n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x336c) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x3350) != 0) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }\n  (*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2);\n  local_24 = local_38;\n  local_20 = local_34;\n  local_1c = local_30;\n  local_18 = local_2c;\n  if ((local_38 == 0) || (local_34 == 0)) {\n    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);\n    if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }\n  }\n  else {\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }\n  if (local_14 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return iVar1;\n  }\n  pdVar15 = local_14;\n  puVar26 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  iStack_9c = **(int **)(puVar26 + 0x2033d8);\n  pdVar28 = *(double **)(pdVar15 + 2);\n  iStack_4e4 = *(int *)((int)pdVar28 + 0x1c);\n  iStack_98 = param_1;\n  iStack_94 = iVar1;\n  uStack_90 = param_2;\n  iVar1 = (**(code **)(puVar26 + 0x203ab4))();\n  iVar3 = (**(code **)(puVar26 + 0x2036b0))();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar35 = iStack_4e4 / iVar1;\n  iStack_4e4 = iStack_4e4 % iVar1;\n  if (iVar3 < iStack_4e4) {\n    iVar35 = iVar35 + 1;\n    iStack_4e4 = 0;\n  }\n  pdVar16 = (double *)(iVar35 * iVar3);\n  iStack_4e4 = (int)pdVar16 + iStack_4e4;\n  iVar35 = iVar35 + iStack_4e4;\n  if (iStack_4e4 < iVar35) {\n    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);\n    uVar2 = *(undefined4 *)(pdVar15 + 1);\n    iVar3 = *(int *)(pdVar15 + 5);\n    pdVar8 = *(double **)((int)pdVar15 + 0x24);\n    uVar9 = *(undefined4 *)(pdVar15 + 4);\n    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);\n    dVar32 = *pdVar15;\n    pdVar17 = *(double **)(pdVar15 + 3);\n    uVar11 = *(uint *)((int)pdVar15 + 0x14);\n    iVar1 = *(int *)(puVar26 + 0x202a88);\n    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);\n    pdVar16 = pdVar17;\n    do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);\n  }\n  if (iStack_9c != **(int **)(puVar26 + 0x2033d8)) {\n    pcVar27 = *(code **)(puVar26 + 0x20320c);\n    (*pcVar27)();\n    iVar35 = *(int *)(pdVar16 + 1);\n    iVar4 = *(int *)(iVar35 + 0x1c);\n    iVar1 = (**(code **)(pcVar27 + 0x203418))();\n    iVar3 = (**(code **)(pcVar27 + 0x203014))();\n    if (iVar1 == 0) {\n      trap(7);\n    }\n    iVar5 = iVar4 / iVar1;\n    iVar4 = iVar4 % iVar1;\n    if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }\n    iVar4 = iVar5 * iVar3 + iVar4;\n    iVar5 = iVar5 + iVar4;\n    iVar1 = *(int *)(pcVar27 + 0x2023d4);\n    if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }\n    return iVar1;\n  }\n  return **(int **)(puVar26 + 0x2033d8);\n}" (primitive_type "int") (function_declarator "TrimImage(int param_1,undefined4 param_2)" (identifier "TrimImage") (parameter_list "(int param_1,undefined4 param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  double *pdVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  int iVar12;\n  float *pfVar13;\n  uint uVar14;\n  double *pdVar15;\n  double *pdVar16;\n  double *pdVar17;\n  float *pfVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int *piVar24;\n  int iVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  double *pdVar28;\n  undefined4 uVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  ulonglong uVar33;\n  undefined8 uVar34;\n  int iVar35;\n  int iStack_4e8;\n  int iStack_4e4;\n  undefined8 uStack_4a0;\n  undefined8 uStack_2a0;\n  int iStack_9c;\n  int iStack_98;\n  int iStack_94;\n  undefined4 uStack_90;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_24;\n  int local_20;\n  int local_1c;\n  int local_18;\n  double *local_14;\n  \n  local_14 = *(double **)PTR___stack_chk_guard_003fa248;\n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x336c) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0x3350) != 0) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }\n  (*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2);\n  local_24 = local_38;\n  local_20 = local_34;\n  local_1c = local_30;\n  local_18 = local_2c;\n  if ((local_38 == 0) || (local_34 == 0)) {\n    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);\n    if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }\n  }\n  else {\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }\n  if (local_14 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return iVar1;\n  }\n  pdVar15 = local_14;\n  puVar26 = PTR___stack_chk_fail_003fa07c;\n  (*(code *)PTR___stack_chk_fail_003fa07c)();\n  iStack_9c = **(int **)(puVar26 + 0x2033d8);\n  pdVar28 = *(double **)(pdVar15 + 2);\n  iStack_4e4 = *(int *)((int)pdVar28 + 0x1c);\n  iStack_98 = param_1;\n  iStack_94 = iVar1;\n  uStack_90 = param_2;\n  iVar1 = (**(code **)(puVar26 + 0x203ab4))();\n  iVar3 = (**(code **)(puVar26 + 0x2036b0))();\n  if (iVar1 == 0) {\n    trap(7);\n  }\n  iVar35 = iStack_4e4 / iVar1;\n  iStack_4e4 = iStack_4e4 % iVar1;\n  if (iVar3 < iStack_4e4) {\n    iVar35 = iVar35 + 1;\n    iStack_4e4 = 0;\n  }\n  pdVar16 = (double *)(iVar35 * iVar3);\n  iStack_4e4 = (int)pdVar16 + iStack_4e4;\n  iVar35 = iVar35 + iStack_4e4;\n  if (iStack_4e4 < iVar35) {\n    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);\n    uVar2 = *(undefined4 *)(pdVar15 + 1);\n    iVar3 = *(int *)(pdVar15 + 5);\n    pdVar8 = *(double **)((int)pdVar15 + 0x24);\n    uVar9 = *(undefined4 *)(pdVar15 + 4);\n    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);\n    dVar32 = *pdVar15;\n    pdVar17 = *(double **)(pdVar15 + 3);\n    uVar11 = *(uint *)((int)pdVar15 + 0x14);\n    iVar1 = *(int *)(puVar26 + 0x202a88);\n    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);\n    pdVar16 = pdVar17;\n    do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);\n  }\n  if (iStack_9c != **(int **)(puVar26 + 0x2033d8)) {\n    pcVar27 = *(code **)(puVar26 + 0x20320c);\n    (*pcVar27)();\n    iVar35 = *(int *)(pdVar16 + 1);\n    iVar4 = *(int *)(iVar35 + 0x1c);\n    iVar1 = (**(code **)(pcVar27 + 0x203418))();\n    iVar3 = (**(code **)(pcVar27 + 0x203014))();\n    if (iVar1 == 0) {\n      trap(7);\n    }\n    iVar5 = iVar4 / iVar1;\n    iVar4 = iVar4 % iVar1;\n    if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }\n    iVar4 = iVar5 * iVar3 + iVar4;\n    iVar5 = iVar5 + iVar4;\n    iVar1 = *(int *)(pcVar27 + 0x2023d4);\n    if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }\n    return iVar1;\n  }\n  return **(int **)(puVar26 + 0x2033d8);\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "double *pdVar8;" (primitive_type "double") (pointer_declarator "*pdVar8" (* "*") (identifier "pdVar8")) (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "float *pfVar13;" (primitive_type "float") (pointer_declarator "*pfVar13" (* "*") (identifier "pfVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "double *pdVar15;" (primitive_type "double") (pointer_declarator "*pdVar15" (* "*") (identifier "pdVar15")) (; ";")) (declaration "double *pdVar16;" (primitive_type "double") (pointer_declarator "*pdVar16" (* "*") (identifier "pdVar16")) (; ";")) (declaration "double *pdVar17;" (primitive_type "double") (pointer_declarator "*pdVar17" (* "*") (identifier "pdVar17")) (; ";")) (declaration "float *pfVar18;" (primitive_type "float") (pointer_declarator "*pfVar18" (* "*") (identifier "pfVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "int *piVar24;" (primitive_type "int") (pointer_declarator "*piVar24" (* "*") (identifier "piVar24")) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "undefined *puVar26;" (type_identifier "undefined") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "code *pcVar27;" (type_identifier "code") (pointer_declarator "*pcVar27" (* "*") (identifier "pcVar27")) (; ";")) (declaration "double *pdVar28;" (primitive_type "double") (pointer_declarator "*pdVar28" (* "*") (identifier "pdVar28")) (; ";")) (declaration "undefined4 uVar29;" (type_identifier "undefined4") (identifier "uVar29") (; ";")) (declaration "double dVar30;" (primitive_type "double") (identifier "dVar30") (; ";")) (declaration "double dVar31;" (primitive_type "double") (identifier "dVar31") (; ";")) (declaration "double dVar32;" (primitive_type "double") (identifier "dVar32") (; ";")) (declaration "ulonglong uVar33;" (type_identifier "ulonglong") (identifier "uVar33") (; ";")) (declaration "undefined8 uVar34;" (type_identifier "undefined8") (identifier "uVar34") (; ";")) (declaration "int iVar35;" (primitive_type "int") (identifier "iVar35") (; ";")) (declaration "int iStack_4e8;" (primitive_type "int") (identifier "iStack_4e8") (; ";")) (declaration "int iStack_4e4;" (primitive_type "int") (identifier "iStack_4e4") (; ";")) (declaration "undefined8 uStack_4a0;" (type_identifier "undefined8") (identifier "uStack_4a0") (; ";")) (declaration "undefined8 uStack_2a0;" (type_identifier "undefined8") (identifier "uStack_2a0") (; ";")) (declaration "int iStack_9c;" (primitive_type "int") (identifier "iStack_9c") (; ";")) (declaration "int iStack_98;" (primitive_type "int") (identifier "iStack_98") (; ";")) (declaration "int iStack_94;" (primitive_type "int") (identifier "iStack_94") (; ";")) (declaration "undefined4 uStack_90;" (type_identifier "undefined4") (identifier "uStack_90") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "int local_1c;" (primitive_type "int") (identifier "local_1c") (; ";")) (declaration "int local_18;" (primitive_type "int") (identifier "local_18") (; ";")) (declaration "double *local_14;" (primitive_type "double") (pointer_declarator "*local_14" (* "*") (identifier "local_14")) (; ";")) (expression_statement "local_14 = *(double **)PTR___stack_chk_guard_003fa248;" (assignment_expression "local_14 = *(double **)PTR___stack_chk_guard_003fa248" (identifier "local_14") (= "=") (pointer_expression "*(double **)PTR___stack_chk_guard_003fa248" (* "*") (cast_expression "(double **)PTR___stack_chk_guard_003fa248" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_003fa248")))) (; ";")) (if_statement "if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }" ({ "{") (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003fa620" (* "*") (cast_expression "(code *)PTR___assert_fail_003fa620" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003fa620"))) () ")")) (argument_list "(PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" (( "(") (binary_expression "PTR_UINT_003f98e4 + -0x7b0" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "-0x7b0")) (, ",") (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4" (identifier "PTR_s_irtualMetacontentFromStream_003f98f8") (+ "+") (number_literal "0xbd4")) (, ",") (number_literal "0x96e") (, ",") (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8" (identifier "PTR_s_irtualMetacontentFromStream_003f98f8") (+ "+") (number_literal "0xca8")) () ")")))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x336c) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x336c) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0x336c) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x336c)" (* "*") (cast_expression "(int *)(param_1 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x336c)" (( "(") (binary_expression "param_1 + 0x336c" (identifier "param_1") (+ "+") (number_literal "0x336c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);\n    return iVar1;\n  }" ({ "{") (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR___assert_fail_003fa620)\n                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003fa620" (* "*") (cast_expression "(code *)PTR___assert_fail_003fa620" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003fa620"))) () ")")) (argument_list "(PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4\n                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8)" (( "(") (binary_expression "PTR_UINT_003f98e4 + -0x784" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "-0x784")) (, ",") (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4" (identifier "PTR_s_irtualMetacontentFromStream_003f98f8") (+ "+") (number_literal "0xbd4")) (, ",") (number_literal "0x96f") (, ",") (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8" (identifier "PTR_s_irtualMetacontentFromStream_003f98f8") (+ "+") (number_literal "0xca8")) () ")")))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x3350) != 0) {\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3350) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x3350) != 0" (pointer_expression "*(int *)(param_1 + 0x3350)" (* "*") (cast_expression "(int *)(param_1 + 0x3350)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3350)" (( "(") (binary_expression "param_1 + 0x3350" (identifier "param_1") (+ "+") (number_literal "0x3350")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);\n  }" ({ "{") (expression_statement "(*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);" (call_expression "(*(code *)PTR_LogMagickEvent_003fa1f8)\n              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003fa1f8)" (( "(") (pointer_expression "*(code *)PTR_LogMagickEvent_003fa1f8" (* "*") (cast_expression "(code *)PTR_LogMagickEvent_003fa1f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_LogMagickEvent_003fa1f8"))) () ")")) (argument_list "(0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,\n               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4" (identifier "PTR_s_irtualMetacontentFromStream_003f98f8") (+ "+") (number_literal "0xbd4")) (, ",") (binary_expression "PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c" (identifier "PTR_s_irtualMetacontentFromStream_003f98f8") (+ "+") (number_literal "0xc9c")) (, ",") (number_literal "0x971") () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2);" (call_expression "(*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2)" (parenthesized_expression "(*(code *)PTR_GetImageBoundingBox_003fa9a0)" (( "(") (pointer_expression "*(code *)PTR_GetImageBoundingBox_003fa9a0" (* "*") (cast_expression "(code *)PTR_GetImageBoundingBox_003fa9a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetImageBoundingBox_003fa9a0"))) () ")")) (argument_list "(&local_38,param_1,param_2)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "local_24 = local_38;" (assignment_expression "local_24 = local_38" (identifier "local_24") (= "=") (identifier "local_38")) (; ";")) (expression_statement "local_20 = local_34;" (assignment_expression "local_20 = local_34" (identifier "local_20") (= "=") (identifier "local_34")) (; ";")) (expression_statement "local_1c = local_30;" (assignment_expression "local_1c = local_30" (identifier "local_1c") (= "=") (identifier "local_30")) (; ";")) (expression_statement "local_18 = local_2c;" (assignment_expression "local_18 = local_2c" (identifier "local_18") (= "=") (identifier "local_2c")) (; ";")) (if_statement "if ((local_38 == 0) || (local_34 == 0)) {\n    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);\n    if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }\n  }\n  else {\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }" (if "if") (parenthesized_expression "((local_38 == 0) || (local_34 == 0))" (( "(") (binary_expression "(local_38 == 0) || (local_34 == 0)" (parenthesized_expression "(local_38 == 0)" (( "(") (binary_expression "local_38 == 0" (identifier "local_38") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_34 == 0)" (( "(") (binary_expression "local_34 == 0" (identifier "local_34") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);\n    if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }\n  }" ({ "{") (expression_statement "iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);" (assignment_expression "iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1)" (parenthesized_expression "(*(code *)PTR_CloneImage_003fa848)" (( "(") (pointer_expression "*(code *)PTR_CloneImage_003fa848" (* "*") (cast_expression "(code *)PTR_CloneImage_003fa848" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CloneImage_003fa848"))) () ")")) (argument_list "(param_1,1,1,1)" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(iVar1 + 0x90) = 4;\n      *(undefined4 *)(iVar1 + 0xd4) = 0;\n      *(undefined4 *)(iVar1 + 0xd0) = 0;\n      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);\n      uVar2 = *(undefined4 *)(param_1 + 0x22c);\n      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);\n      *(undefined4 *)(iVar1 + 0x22c) = uVar2;\n      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;\n      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;\n    }" ({ "{") (expression_statement "*(undefined4 *)(iVar1 + 0x90) = 4;" (assignment_expression "*(undefined4 *)(iVar1 + 0x90) = 4" (pointer_expression "*(undefined4 *)(iVar1 + 0x90)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x90)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x90)" (( "(") (binary_expression "iVar1 + 0x90" (identifier "iVar1") (+ "+") (number_literal "0x90")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0xd4) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xd4) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xd4)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0xd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xd4)" (( "(") (binary_expression "iVar1 + 0xd4" (identifier "iVar1") (+ "+") (number_literal "0xd4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0xd0) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0xd0) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0xd0)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0xd0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xd0)" (( "(") (binary_expression "iVar1 + 0xd0" (identifier "iVar1") (+ "+") (number_literal "0xd0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);" (call_expression "(*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2)" (parenthesized_expression "(*(code *)PTR_SetImageBackgroundColor_003f9ea8)" (( "(") (pointer_expression "*(code *)PTR_SetImageBackgroundColor_003f9ea8" (* "*") (cast_expression "(code *)PTR_SetImageBackgroundColor_003f9ea8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetImageBackgroundColor_003f9ea8"))) () ")")) (argument_list "(iVar1,param_2)" (( "(") (identifier "iVar1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "uVar2 = *(undefined4 *)(param_1 + 0x22c);" (assignment_expression "uVar2 = *(undefined4 *)(param_1 + 0x22c)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x22c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x22c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x22c)" (( "(") (binary_expression "param_1 + 0x22c" (identifier "param_1") (+ "+") (number_literal "0x22c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);" (assignment_expression "*(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228)" (pointer_expression "*(undefined4 *)(iVar1 + 0x228)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x228)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x228)" (( "(") (binary_expression "iVar1 + 0x228" (identifier "iVar1") (+ "+") (number_literal "0x228")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x228)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x228)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x228)" (( "(") (binary_expression "param_1 + 0x228" (identifier "param_1") (+ "+") (number_literal "0x228")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x22c) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + 0x22c) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + 0x22c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x22c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x22c)" (( "(") (binary_expression "iVar1 + 0x22c" (identifier "iVar1") (+ "+") (number_literal "0x22c")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x230) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar1 + 0x230) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar1 + 0x230)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x230)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x230)" (( "(") (binary_expression "iVar1 + 0x230" (identifier "iVar1") (+ "+") (number_literal "0x230")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x234) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar1 + 0x234) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar1 + 0x234)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x234)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x234)" (( "(") (binary_expression "iVar1 + 0x234" (identifier "iVar1") (+ "+") (number_literal "0x234")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }" (else "else") (compound_statement "{\n    local_1c = local_30 + *(int *)(param_1 + 0x230);\n    local_18 = local_2c + *(int *)(param_1 + 0x234);\n    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);\n    if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }\n  }" ({ "{") (expression_statement "local_1c = local_30 + *(int *)(param_1 + 0x230);" (assignment_expression "local_1c = local_30 + *(int *)(param_1 + 0x230)" (identifier "local_1c") (= "=") (binary_expression "local_30 + *(int *)(param_1 + 0x230)" (identifier "local_30") (+ "+") (pointer_expression "*(int *)(param_1 + 0x230)" (* "*") (cast_expression "(int *)(param_1 + 0x230)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x230)" (( "(") (binary_expression "param_1 + 0x230" (identifier "param_1") (+ "+") (number_literal "0x230")) () ")")))))) (; ";")) (expression_statement "local_18 = local_2c + *(int *)(param_1 + 0x234);" (assignment_expression "local_18 = local_2c + *(int *)(param_1 + 0x234)" (identifier "local_18") (= "=") (binary_expression "local_2c + *(int *)(param_1 + 0x234)" (identifier "local_2c") (+ "+") (pointer_expression "*(int *)(param_1 + 0x234)" (* "*") (cast_expression "(int *)(param_1 + 0x234)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x234)" (( "(") (binary_expression "param_1 + 0x234" (identifier "param_1") (+ "+") (number_literal "0x234")) () ")")))))) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);" (assignment_expression "iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2)" (parenthesized_expression "(*(code *)PTR_CropImage_003fa0d0)" (( "(") (pointer_expression "*(code *)PTR_CropImage_003fa0d0" (* "*") (cast_expression "(code *)PTR_CropImage_003fa0d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CropImage_003fa0d0"))) () ")")) (argument_list "(param_1,&local_24,param_2)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);\n    }" ({ "{") (expression_statement "(*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);" (call_expression "(*(code *)PTR_FUN_003f9ba0)\n                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24)" (parenthesized_expression "(*(code *)PTR_FUN_003f9ba0)" (( "(") (pointer_expression "*(code *)PTR_FUN_003f9ba0" (* "*") (cast_expression "(code *)PTR_FUN_003f9ba0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003f9ba0"))) () ")")) (argument_list "(iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24)" (( "(") (identifier "iVar1") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (local_14 == *(double **)PTR___stack_chk_guard_003fa248) {\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(local_14 == *(double **)PTR___stack_chk_guard_003fa248)" (( "(") (binary_expression "local_14 == *(double **)PTR___stack_chk_guard_003fa248" (identifier "local_14") (== "==") (pointer_expression "*(double **)PTR___stack_chk_guard_003fa248" (* "*") (cast_expression "(double **)PTR___stack_chk_guard_003fa248" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_003fa248")))) () ")")) (compound_statement "{\n    return iVar1;\n  }" ({ "{") (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (expression_statement "pdVar15 = local_14;" (assignment_expression "pdVar15 = local_14" (identifier "pdVar15") (= "=") (identifier "local_14")) (; ";")) (expression_statement "puVar26 = PTR___stack_chk_fail_003fa07c;" (assignment_expression "puVar26 = PTR___stack_chk_fail_003fa07c" (identifier "puVar26") (= "=") (identifier "PTR___stack_chk_fail_003fa07c")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_003fa07c)();" (call_expression "(*(code *)PTR___stack_chk_fail_003fa07c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003fa07c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_003fa07c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_003fa07c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_003fa07c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iStack_9c = **(int **)(puVar26 + 0x2033d8);" (assignment_expression "iStack_9c = **(int **)(puVar26 + 0x2033d8)" (identifier "iStack_9c") (= "=") (pointer_expression "**(int **)(puVar26 + 0x2033d8)" (* "*") (pointer_expression "*(int **)(puVar26 + 0x2033d8)" (* "*") (cast_expression "(int **)(puVar26 + 0x2033d8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x2033d8)" (( "(") (binary_expression "puVar26 + 0x2033d8" (identifier "puVar26") (+ "+") (number_literal "0x2033d8")) () ")")))))) (; ";")) (expression_statement "pdVar28 = *(double **)(pdVar15 + 2);" (assignment_expression "pdVar28 = *(double **)(pdVar15 + 2)" (identifier "pdVar28") (= "=") (pointer_expression "*(double **)(pdVar15 + 2)" (* "*") (cast_expression "(double **)(pdVar15 + 2)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar15 + 2)" (( "(") (binary_expression "pdVar15 + 2" (identifier "pdVar15") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "iStack_4e4 = *(int *)((int)pdVar28 + 0x1c);" (assignment_expression "iStack_4e4 = *(int *)((int)pdVar28 + 0x1c)" (identifier "iStack_4e4") (= "=") (pointer_expression "*(int *)((int)pdVar28 + 0x1c)" (* "*") (cast_expression "(int *)((int)pdVar28 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar28 + 0x1c)" (( "(") (binary_expression "(int)pdVar28 + 0x1c" (cast_expression "(int)pdVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar28")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "iStack_98 = param_1;" (assignment_expression "iStack_98 = param_1" (identifier "iStack_98") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iStack_94 = iVar1;" (assignment_expression "iStack_94 = iVar1" (identifier "iStack_94") (= "=") (identifier "iVar1")) (; ";")) (expression_statement "uStack_90 = param_2;" (assignment_expression "uStack_90 = param_2" (identifier "uStack_90") (= "=") (identifier "param_2")) (; ";")) (expression_statement "iVar1 = (**(code **)(puVar26 + 0x203ab4))();" (assignment_expression "iVar1 = (**(code **)(puVar26 + 0x203ab4))()" (identifier "iVar1") (= "=") (call_expression "(**(code **)(puVar26 + 0x203ab4))()" (parenthesized_expression "(**(code **)(puVar26 + 0x203ab4))" (( "(") (pointer_expression "**(code **)(puVar26 + 0x203ab4)" (* "*") (pointer_expression "*(code **)(puVar26 + 0x203ab4)" (* "*") (cast_expression "(code **)(puVar26 + 0x203ab4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x203ab4)" (( "(") (binary_expression "puVar26 + 0x203ab4" (identifier "puVar26") (+ "+") (number_literal "0x203ab4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = (**(code **)(puVar26 + 0x2036b0))();" (assignment_expression "iVar3 = (**(code **)(puVar26 + 0x2036b0))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar26 + 0x2036b0))()" (parenthesized_expression "(**(code **)(puVar26 + 0x2036b0))" (( "(") (pointer_expression "**(code **)(puVar26 + 0x2036b0)" (* "*") (pointer_expression "*(code **)(puVar26 + 0x2036b0)" (* "*") (cast_expression "(code **)(puVar26 + 0x2036b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x2036b0)" (( "(") (binary_expression "puVar26 + 0x2036b0" (identifier "puVar26") (+ "+") (number_literal "0x2036b0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    trap(7);\n  }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar35 = iStack_4e4 / iVar1;" (assignment_expression "iVar35 = iStack_4e4 / iVar1" (identifier "iVar35") (= "=") (binary_expression "iStack_4e4 / iVar1" (identifier "iStack_4e4") (/ "/") (identifier "iVar1"))) (; ";")) (expression_statement "iStack_4e4 = iStack_4e4 % iVar1;" (assignment_expression "iStack_4e4 = iStack_4e4 % iVar1" (identifier "iStack_4e4") (= "=") (binary_expression "iStack_4e4 % iVar1" (identifier "iStack_4e4") (% "%") (identifier "iVar1"))) (; ";")) (if_statement "if (iVar3 < iStack_4e4) {\n    iVar35 = iVar35 + 1;\n    iStack_4e4 = 0;\n  }" (if "if") (parenthesized_expression "(iVar3 < iStack_4e4)" (( "(") (binary_expression "iVar3 < iStack_4e4" (identifier "iVar3") (< "<") (identifier "iStack_4e4")) () ")")) (compound_statement "{\n    iVar35 = iVar35 + 1;\n    iStack_4e4 = 0;\n  }" ({ "{") (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 1" (identifier "iVar35") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iStack_4e4 = 0;" (assignment_expression "iStack_4e4 = 0" (identifier "iStack_4e4") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "pdVar16 = (double *)(iVar35 * iVar3);" (assignment_expression "pdVar16 = (double *)(iVar35 * iVar3)" (identifier "pdVar16") (= "=") (cast_expression "(double *)(iVar35 * iVar3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 * iVar3)" (( "(") (binary_expression "iVar35 * iVar3" (identifier "iVar35") (* "*") (identifier "iVar3")) () ")")))) (; ";")) (expression_statement "iStack_4e4 = (int)pdVar16 + iStack_4e4;" (assignment_expression "iStack_4e4 = (int)pdVar16 + iStack_4e4" (identifier "iStack_4e4") (= "=") (binary_expression "(int)pdVar16 + iStack_4e4" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (identifier "iStack_4e4"))) (; ";")) (expression_statement "iVar35 = iVar35 + iStack_4e4;" (assignment_expression "iVar35 = iVar35 + iStack_4e4" (identifier "iVar35") (= "=") (binary_expression "iVar35 + iStack_4e4" (identifier "iVar35") (+ "+") (identifier "iStack_4e4"))) (; ";")) (if_statement "if (iStack_4e4 < iVar35) {\n    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);\n    uVar2 = *(undefined4 *)(pdVar15 + 1);\n    iVar3 = *(int *)(pdVar15 + 5);\n    pdVar8 = *(double **)((int)pdVar15 + 0x24);\n    uVar9 = *(undefined4 *)(pdVar15 + 4);\n    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);\n    dVar32 = *pdVar15;\n    pdVar17 = *(double **)(pdVar15 + 3);\n    uVar11 = *(uint *)((int)pdVar15 + 0x14);\n    iVar1 = *(int *)(puVar26 + 0x202a88);\n    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);\n    pdVar16 = pdVar17;\n    do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);\n  }" (if "if") (parenthesized_expression "(iStack_4e4 < iVar35)" (( "(") (binary_expression "iStack_4e4 < iVar35" (identifier "iStack_4e4") (< "<") (identifier "iVar35")) () ")")) (compound_statement "{\n    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);\n    uVar2 = *(undefined4 *)(pdVar15 + 1);\n    iVar3 = *(int *)(pdVar15 + 5);\n    pdVar8 = *(double **)((int)pdVar15 + 0x24);\n    uVar9 = *(undefined4 *)(pdVar15 + 4);\n    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);\n    dVar32 = *pdVar15;\n    pdVar17 = *(double **)(pdVar15 + 3);\n    uVar11 = *(uint *)((int)pdVar15 + 0x14);\n    iVar1 = *(int *)(puVar26 + 0x202a88);\n    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);\n    pdVar16 = pdVar17;\n    do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);\n  }" ({ "{") (expression_statement "uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);" (assignment_expression "uVar7 = *(undefined4 *)((int)pdVar15 + 0xc)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar15 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pdVar15 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar15 + 0xc)" (( "(") (binary_expression "(int)pdVar15 + 0xc" (cast_expression "(int)pdVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar15")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(undefined4 *)(pdVar15 + 1);" (assignment_expression "uVar2 = *(undefined4 *)(pdVar15 + 1)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)(pdVar15 + 1)" (* "*") (cast_expression "(undefined4 *)(pdVar15 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar15 + 1)" (( "(") (binary_expression "pdVar15 + 1" (identifier "pdVar15") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(pdVar15 + 5);" (assignment_expression "iVar3 = *(int *)(pdVar15 + 5)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pdVar15 + 5)" (* "*") (cast_expression "(int *)(pdVar15 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar15 + 5)" (( "(") (binary_expression "pdVar15 + 5" (identifier "pdVar15") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "pdVar8 = *(double **)((int)pdVar15 + 0x24);" (assignment_expression "pdVar8 = *(double **)((int)pdVar15 + 0x24)" (identifier "pdVar8") (= "=") (pointer_expression "*(double **)((int)pdVar15 + 0x24)" (* "*") (cast_expression "(double **)((int)pdVar15 + 0x24)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pdVar15 + 0x24)" (( "(") (binary_expression "(int)pdVar15 + 0x24" (cast_expression "(int)pdVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar15")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(pdVar15 + 4);" (assignment_expression "uVar9 = *(undefined4 *)(pdVar15 + 4)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(pdVar15 + 4)" (* "*") (cast_expression "(undefined4 *)(pdVar15 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar15 + 4)" (( "(") (binary_expression "pdVar15 + 4" (identifier "pdVar15") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);" (assignment_expression "uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar15 + 0x1c)" (* "*") (cast_expression "(undefined4 *)((int)pdVar15 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar15 + 0x1c)" (( "(") (binary_expression "(int)pdVar15 + 0x1c" (cast_expression "(int)pdVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar15")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "dVar32 = *pdVar15;" (assignment_expression "dVar32 = *pdVar15" (identifier "dVar32") (= "=") (pointer_expression "*pdVar15" (* "*") (identifier "pdVar15"))) (; ";")) (expression_statement "pdVar17 = *(double **)(pdVar15 + 3);" (assignment_expression "pdVar17 = *(double **)(pdVar15 + 3)" (identifier "pdVar17") (= "=") (pointer_expression "*(double **)(pdVar15 + 3)" (* "*") (cast_expression "(double **)(pdVar15 + 3)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar15 + 3)" (( "(") (binary_expression "pdVar15 + 3" (identifier "pdVar15") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar11 = *(uint *)((int)pdVar15 + 0x14);" (assignment_expression "uVar11 = *(uint *)((int)pdVar15 + 0x14)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)((int)pdVar15 + 0x14)" (* "*") (cast_expression "(uint *)((int)pdVar15 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar15 + 0x14)" (( "(") (binary_expression "(int)pdVar15 + 0x14" (cast_expression "(int)pdVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar15")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar1 = *(int *)(puVar26 + 0x202a88);" (assignment_expression "iVar1 = *(int *)(puVar26 + 0x202a88)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(puVar26 + 0x202a88)" (* "*") (cast_expression "(int *)(puVar26 + 0x202a88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0x202a88)" (( "(") (binary_expression "puVar26 + 0x202a88" (identifier "puVar26") (+ "+") (number_literal "0x202a88")) () ")"))))) (; ";")) (expression_statement "uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);" (assignment_expression "uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8)" (identifier "uVar33") (= "=") (binary_expression "(ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar26 + 0x202a70) + 0x4aa8)" (( "(") (binary_expression "*(int *)(puVar26 + 0x202a70) + 0x4aa8" (pointer_expression "*(int *)(puVar26 + 0x202a70)" (* "*") (cast_expression "(int *)(puVar26 + 0x202a70)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0x202a70)" (( "(") (binary_expression "puVar26 + 0x202a70" (identifier "puVar26") (+ "+") (number_literal "0x202a70")) () ")")))) (+ "+") (number_literal "0x4aa8")) () ")"))))) (; ";")) (expression_statement "pdVar16 = pdVar17;" (assignment_expression "pdVar16 = pdVar17" (identifier "pdVar16") (= "=") (identifier "pdVar17")) (; ";")) (do_statement "do {\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    } while (iVar35 != iStack_4e4);" (do "do") (compound_statement "{\n      if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }\n      iStack_4e4 = iStack_4e4 + 1;\n    }" ({ "{") (if_statement "if (*(int *)((int)pdVar15 + 0x2c) != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)((int)pdVar15 + 0x2c) != 0)" (( "(") (binary_expression "*(int *)((int)pdVar15 + 0x2c) != 0" (pointer_expression "*(int *)((int)pdVar15 + 0x2c)" (* "*") (cast_expression "(int *)((int)pdVar15 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar15 + 0x2c)" (( "(") (binary_expression "(int)pdVar15 + 0x2c" (cast_expression "(int)pdVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar15")) (+ "+") (number_literal "0x2c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);\n        pdVar16 = pdVar8;\n        iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);\n        if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar26 + 0x203804))\n                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10)" (parenthesized_expression "(**(code **)(puVar26 + 0x203804))" (( "(") (pointer_expression "**(code **)(puVar26 + 0x203804)" (* "*") (pointer_expression "*(code **)(puVar26 + 0x203804)" (* "*") (cast_expression "(code **)(puVar26 + 0x203804)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x203804)" (( "(") (binary_expression "puVar26 + 0x203804" (identifier "puVar26") (+ "+") (number_literal "0x203804")) () ")"))))) () ")")) (argument_list "(uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),\n                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10)" (( "(") (identifier "uVar9") (, ",") (unary_expression "-((int)uVar11 / 2)" (- "-") (parenthesized_expression "((int)uVar11 / 2)" (( "(") (binary_expression "(int)uVar11 / 2" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (/ "/") (number_literal "2")) () ")"))) (, ",") (binary_expression "iStack_4e4 - ((uint)pdVar17 >> 1)" (identifier "iStack_4e4") (- "-") (parenthesized_expression "((uint)pdVar17 >> 1)" (( "(") (binary_expression "(uint)pdVar17 >> 1" (cast_expression "(uint)pdVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pdVar17")) (>> ">>") (number_literal "1")) () ")"))) (, ",") (binary_expression "uVar11 + *(int *)(pdVar28 + 3)" (identifier "uVar11") (+ "+") (pointer_expression "*(int *)(pdVar28 + 3)" (* "*") (cast_expression "(int *)(pdVar28 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 3)" (( "(") (binary_expression "pdVar28 + 3" (identifier "pdVar28") (+ "+") (number_literal "3")) () ")"))))) (, ",") (identifier "pdVar17") (, ",") (identifier "uVar10") () ")")))) (; ";")) (expression_statement "pdVar16 = pdVar8;" (assignment_expression "pdVar16 = pdVar8" (identifier "pdVar16") (= "=") (identifier "pdVar8")) (; ";")) (expression_statement "iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);" (assignment_expression "iVar5 = (**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puVar26 + 0x202df8))\n                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10)" (parenthesized_expression "(**(code **)(puVar26 + 0x202df8))" (( "(") (pointer_expression "**(code **)(puVar26 + 0x202df8)" (* "*") (pointer_expression "*(code **)(puVar26 + 0x202df8)" (* "*") (cast_expression "(code **)(puVar26 + 0x202df8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x202df8)" (( "(") (binary_expression "puVar26 + 0x202df8" (identifier "puVar26") (+ "+") (number_literal "0x202df8")) () ")"))))) () ")")) (argument_list "(pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10)" (( "(") (identifier "pdVar8") (, ",") (number_literal "0") (, ",") (identifier "iStack_4e4") (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "uVar10") () ")")))) (; ";")) (if_statement "if ((iVar4 == 0) || (iVar5 == 0)) {\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }\n        else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((iVar4 == 0) || (iVar5 == 0))" (( "(") (binary_expression "(iVar4 == 0) || (iVar5 == 0)" (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n        }" ({ "{") (expression_statement "*(undefined4 *)((int)pdVar15 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar15 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar15 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((int)pdVar15 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar15 + 0x2c)" (( "(") (binary_expression "(int)pdVar15 + 0x2c" (cast_expression "(int)pdVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar15")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          iVar23 = *(int *)(pdVar28 + 0x58);\n          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;\n          if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }\n          if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }\n          pdVar16 = pdVar8;\n          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);\n          if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }\n          if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }\n        }" ({ "{") (expression_statement "iVar23 = *(int *)(pdVar28 + 0x58);" (assignment_expression "iVar23 = *(int *)(pdVar28 + 0x58)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(pdVar28 + 0x58)" (* "*") (cast_expression "(int *)(pdVar28 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 0x58)" (( "(") (binary_expression "pdVar28 + 0x58" (identifier "pdVar28") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23;" (assignment_expression "iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23" (identifier "iVar22") (= "=") (binary_expression "((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *\n                   iVar23" (parenthesized_expression "((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1))" (( "(") (binary_expression "(uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)" (binary_expression "(uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1)" (parenthesized_expression "(uVar11 + *(int *)(pdVar28 + 3))" (( "(") (binary_expression "uVar11 + *(int *)(pdVar28 + 3)" (identifier "uVar11") (+ "+") (pointer_expression "*(int *)(pdVar28 + 3)" (* "*") (cast_expression "(int *)(pdVar28 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 3)" (( "(") (binary_expression "pdVar28 + 3" (identifier "pdVar28") (+ "+") (number_literal "3")) () ")"))))) () ")")) (* "*") (parenthesized_expression "((uint)pdVar17 >> 1)" (( "(") (binary_expression "(uint)pdVar17 >> 1" (cast_expression "(uint)pdVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pdVar17")) (>> ">>") (number_literal "1")) () ")"))) (+ "+") (parenthesized_expression "(uVar11 >> 1)" (( "(") (binary_expression "uVar11 >> 1" (identifier "uVar11") (>> ">>") (number_literal "1")) () ")"))) () ")")) (* "*") (identifier "iVar23"))) (; ";")) (if_statement "if (0 < iVar23) {\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }" (if "if") (parenthesized_expression "(0 < iVar23)" (( "(") (binary_expression "0 < iVar23" (number_literal "0") (< "<") (identifier "iVar23")) () ")")) (compound_statement "{\n            iVar21 = 0;\n            iVar20 = 0;\n            do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);\n          }" ({ "{") (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" (identifier "iVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            } while (iVar20 < iVar23);" (do "do") (compound_statement "{\n              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);\n              iVar6 = iVar19 * 0xc;\n              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }\n              iVar20 = iVar20 + 1;\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              iVar21 = iVar21 + 0xc;\n            }" ({ "{") (expression_statement "iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);" (assignment_expression "iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar21)" (* "*") (cast_expression "(int *)(*(int *)(pdVar28 + 0x5a) + iVar21)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pdVar28 + 0x5a) + iVar21)" (( "(") (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar21" (pointer_expression "*(int *)(pdVar28 + 0x5a)" (* "*") (cast_expression "(int *)(pdVar28 + 0x5a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 0x5a)" (( "(") (binary_expression "pdVar28 + 0x5a" (identifier "pdVar28") (+ "+") (number_literal "0x5a")) () ")")))) (+ "+") (identifier "iVar21")) () ")"))))) (; ";")) (expression_statement "iVar6 = iVar19 * 0xc;" (assignment_expression "iVar6 = iVar19 * 0xc" (identifier "iVar6") (= "=") (binary_expression "iVar19 * 0xc" (identifier "iVar19") (* "*") (number_literal "0xc"))) (; ";")) (if_statement "if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0))" (( "(") (binary_expression "(*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&\n                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)" (parenthesized_expression "(*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4)" (* "*") (cast_expression "(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pdVar28 + 0x5a) + iVar6 + 4)" (( "(") (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar6 + 4" (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar6" (pointer_expression "*(int *)(pdVar28 + 0x5a)" (* "*") (cast_expression "(int *)(pdVar28 + 0x5a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 0x5a)" (( "(") (binary_expression "pdVar28 + 0x5a" (identifier "pdVar28") (+ "+") (number_literal "0x5a")) () ")")))) (+ "+") (identifier "iVar6")) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)" (( "(") (comma_expression "uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0" (assignment_expression "uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4)" (identifier "uVar14") (= "=") (pointer_expression "*(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4)" (* "*") (cast_expression "(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 0x2d0) + iVar6 + 4)" (( "(") (binary_expression "*(int *)(iVar3 + 0x2d0) + iVar6 + 4" (binary_expression "*(int *)(iVar3 + 0x2d0) + iVar6" (pointer_expression "*(int *)(iVar3 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar3 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2d0)" (( "(") (binary_expression "iVar3 + 0x2d0" (identifier "iVar3") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (identifier "iVar6")) (+ "+") (number_literal "4")) () ")"))))) (, ",") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }\n              }" ({ "{") (if_statement "if ((uVar14 & 1) == 0) {\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }\n                else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }" (if "if") (parenthesized_expression "((uVar14 & 1) == 0)" (( "(") (binary_expression "(uVar14 & 1) == 0" (parenthesized_expression "(uVar14 & 1)" (( "(") (binary_expression "uVar14 & 1" (identifier "uVar14") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;\n                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;\n                  if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }\n                }" ({ "{") (expression_statement "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0" (pointer_expression "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4)" (* "*") (cast_expression "(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&uStack_4a0 + iVar19 * 8 + 4)" (( "(") (binary_expression "(int)&uStack_4a0 + iVar19 * 8 + 4" (binary_expression "(int)&uStack_4a0 + iVar19 * 8" (cast_expression "(int)&uStack_4a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_4a0" (& "&") (identifier "uStack_4a0"))) (+ "+") (binary_expression "iVar19 * 8" (identifier "iVar19") (* "*") (number_literal "8"))) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(&uStack_4a0 + iVar19) = 0;" (assignment_expression "*(undefined4 *)(&uStack_4a0 + iVar19) = 0" (pointer_expression "*(undefined4 *)(&uStack_4a0 + iVar19)" (* "*") (cast_expression "(undefined4 *)(&uStack_4a0 + iVar19)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&uStack_4a0 + iVar19)" (( "(") (binary_expression "&uStack_4a0 + iVar19" (pointer_expression "&uStack_4a0" (& "&") (identifier "uStack_4a0")) (+ "+") (identifier "iVar19")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0" (pointer_expression "*(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4)" (* "*") (cast_expression "(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&uStack_2a0 + iVar19 * 8 + 4)" (( "(") (binary_expression "(int)&uStack_2a0 + iVar19 * 8 + 4" (binary_expression "(int)&uStack_2a0 + iVar19 * 8" (cast_expression "(int)&uStack_2a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_2a0" (& "&") (identifier "uStack_2a0"))) (+ "+") (binary_expression "iVar19 * 8" (identifier "iVar19") (* "*") (number_literal "8"))) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(&uStack_2a0 + iVar19) = 0;" (assignment_expression "*(undefined4 *)(&uStack_2a0 + iVar19) = 0" (pointer_expression "*(undefined4 *)(&uStack_2a0 + iVar19)" (* "*") (cast_expression "(undefined4 *)(&uStack_2a0 + iVar19)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&uStack_2a0 + iVar19)" (( "(") (binary_expression "&uStack_2a0 + iVar19" (pointer_expression "&uStack_2a0" (& "&") (identifier "uStack_2a0")) (+ "+") (identifier "iVar19")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)pdVar17) {\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }" (if "if") (parenthesized_expression "(0 < (int)pdVar17)" (( "(") (binary_expression "0 < (int)pdVar17" (number_literal "0") (< "<") (cast_expression "(int)pdVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar17"))) () ")")) (compound_statement "{\n                    pdVar16 = (double *)0x0;\n                    iVar6 = iVar4;\n                    do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);\n                  }" ({ "{") (expression_statement "pdVar16 = (double *)0x0;" (assignment_expression "pdVar16 = (double *)0x0" (identifier "pdVar16") (= "=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar6 = iVar4;" (assignment_expression "iVar6 = iVar4" (identifier "iVar6") (= "=") (identifier "iVar4")) (; ";")) (do_statement "do {\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    } while (pdVar16 != pdVar17);" (do "do") (compound_statement "{\n                      pfVar13 = (float *)(iVar6 + iVar20 * 4);\n                      if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }\n                      pdVar16 = (double *)((int)pdVar16 + 1);\n                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;\n                    }" ({ "{") (expression_statement "pfVar13 = (float *)(iVar6 + iVar20 * 4);" (assignment_expression "pfVar13 = (float *)(iVar6 + iVar20 * 4)" (identifier "pfVar13") (= "=") (cast_expression "(float *)(iVar6 + iVar20 * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + iVar20 * 4)" (( "(") (binary_expression "iVar6 + iVar20 * 4" (identifier "iVar6") (+ "+") (binary_expression "iVar20 * 4" (identifier "iVar20") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if (0 < (int)uVar11) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }" (if "if") (parenthesized_expression "(0 < (int)uVar11)" (( "(") (binary_expression "0 < (int)uVar11" (number_literal "0") (< "<") (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11"))) () ")")) (compound_statement "{\n                        dVar31 = (double)(&uStack_2a0)[iVar19];\n                        uVar14 = 0;\n                        do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);\n                        iVar6 = iVar6 + uVar11 * iVar23 * 4;\n                        (&uStack_2a0)[iVar19] = dVar31;\n                      }" ({ "{") (expression_statement "dVar31 = (double)(&uStack_2a0)[iVar19];" (assignment_expression "dVar31 = (double)(&uStack_2a0)[iVar19]" (identifier "dVar31") (= "=") (cast_expression "(double)(&uStack_2a0)[iVar19]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" (( "(") (pointer_expression "&uStack_2a0" (& "&") (identifier "uStack_2a0")) () ")")) ([ "[") (identifier "iVar19") (] "]")))) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        } while (uVar11 != uVar14);" (do "do") (compound_statement "{\n                          if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }\n                          dVar31 = dVar31 + (double)*pfVar13;\n                          uVar14 = uVar14 + 1;\n                          pfVar13 = pfVar13 + iVar23;\n                        }" ({ "{") (if_statement "if (uVar11 - 1 == uVar14) {\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }" (if "if") (parenthesized_expression "(uVar11 - 1 == uVar14)" (( "(") (binary_expression "uVar11 - 1 == uVar14" (binary_expression "uVar11 - 1" (identifier "uVar11") (- "-") (number_literal "1")) (== "==") (identifier "uVar14")) () ")")) (compound_statement "{\n                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;\n                          }" ({ "{") (expression_statement "(&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13\n                            ;" (assignment_expression "(&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13" (subscript_expression "(&uStack_4a0)[iVar19]" (parenthesized_expression "(&uStack_4a0)" (( "(") (pointer_expression "&uStack_4a0" (& "&") (identifier "uStack_4a0")) () ")")) ([ "[") (identifier "iVar19") (] "]")) (= "=") (binary_expression "(double)(&uStack_4a0)[iVar19] + (double)*pfVar13" (cast_expression "(double)(&uStack_4a0)[iVar19]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "(&uStack_4a0)[iVar19]" (parenthesized_expression "(&uStack_4a0)" (( "(") (pointer_expression "&uStack_4a0" (& "&") (identifier "uStack_4a0")) () ")")) ([ "[") (identifier "iVar19") (] "]"))) (+ "+") (cast_expression "(double)*pfVar13" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*pfVar13" (* "*") (identifier "pfVar13"))))) (; ";")) (} "}"))) (expression_statement "dVar31 = dVar31 + (double)*pfVar13;" (assignment_expression "dVar31 = dVar31 + (double)*pfVar13" (identifier "dVar31") (= "=") (binary_expression "dVar31 + (double)*pfVar13" (identifier "dVar31") (+ "+") (cast_expression "(double)*pfVar13" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*pfVar13" (* "*") (identifier "pfVar13"))))) (; ";")) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pfVar13 = pfVar13 + iVar23;" (assignment_expression "pfVar13 = pfVar13 + iVar23" (identifier "pfVar13") (= "=") (binary_expression "pfVar13 + iVar23" (identifier "pfVar13") (+ "+") (identifier "iVar23"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar11 != uVar14)" (( "(") (binary_expression "uVar11 != uVar14" (identifier "uVar11") (!= "!=") (identifier "uVar14")) () ")")) (; ";")) (expression_statement "iVar6 = iVar6 + uVar11 * iVar23 * 4;" (assignment_expression "iVar6 = iVar6 + uVar11 * iVar23 * 4" (identifier "iVar6") (= "=") (binary_expression "iVar6 + uVar11 * iVar23 * 4" (identifier "iVar6") (+ "+") (binary_expression "uVar11 * iVar23 * 4" (binary_expression "uVar11 * iVar23" (identifier "uVar11") (* "*") (identifier "iVar23")) (* "*") (number_literal "4")))) (; ";")) (expression_statement "(&uStack_2a0)[iVar19] = dVar31;" (assignment_expression "(&uStack_2a0)[iVar19] = dVar31" (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" (( "(") (pointer_expression "&uStack_2a0" (& "&") (identifier "uStack_2a0")) () ")")) ([ "[") (identifier "iVar19") (] "]")) (= "=") (identifier "dVar31")) (; ";")) (} "}"))) (expression_statement "pdVar16 = (double *)((int)pdVar16 + 1);" (assignment_expression "pdVar16 = (double *)((int)pdVar16 + 1)" (identifier "pdVar16") (= "=") (cast_expression "(double *)((int)pdVar16 + 1)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + 1)" (( "(") (binary_expression "(int)pdVar16 + 1" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;" (assignment_expression "iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6" (identifier "iVar6") (= "=") (binary_expression "*(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6" (binary_expression "*(int *)(pdVar28 + 3) * 4 * iVar23" (binary_expression "*(int *)(pdVar28 + 3) * 4" (pointer_expression "*(int *)(pdVar28 + 3)" (* "*") (cast_expression "(int *)(pdVar28 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 3)" (( "(") (binary_expression "pdVar28 + 3" (identifier "pdVar28") (+ "+") (number_literal "3")) () ")")))) (* "*") (number_literal "4")) (* "*") (identifier "iVar23")) (+ "+") (identifier "iVar6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar16 != pdVar17)" (( "(") (binary_expression "pdVar16 != pdVar17" (identifier "pdVar16") (!= "!=") (identifier "pdVar17")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }" (else "else") (compound_statement "{\n                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;\n                  if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }\n                }" ({ "{") (expression_statement "iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;" (assignment_expression "iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6" (identifier "iVar6") (= "=") (binary_expression "*(int *)(iVar3 + 0x2d0) + iVar6" (pointer_expression "*(int *)(iVar3 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar3 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2d0)" (( "(") (binary_expression "iVar3 + 0x2d0" (identifier "iVar3") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (identifier "iVar6"))) (; ";")) (if_statement "if (*(int *)(iVar6 + 4) != 0) {\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar6 + 4) != 0" (pointer_expression "*(int *)(iVar6 + 4)" (* "*") (cast_expression "(int *)(iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);\n                  }" ({ "{") (expression_statement "*(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);" (assignment_expression "*(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =\n                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4)" (pointer_expression "*(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + *(int *)(iVar6 + 8) * 4)" (( "(") (binary_expression "iVar5 + *(int *)(iVar6 + 8) * 4" (identifier "iVar5") (+ "+") (binary_expression "*(int *)(iVar6 + 8) * 4" (pointer_expression "*(int *)(iVar6 + 8)" (* "*") (cast_expression "(int *)(iVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar20 * 4 + iVar22 * 4)" (( "(") (binary_expression "iVar4 + iVar20 * 4 + iVar22 * 4" (binary_expression "iVar4 + iVar20 * 4" (identifier "iVar4") (+ "+") (binary_expression "iVar20 * 4" (identifier "iVar20") (* "*") (number_literal "4"))) (+ "+") (binary_expression "iVar22 * 4" (identifier "iVar22") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" (identifier "iVar20") (= "=") (binary_expression "iVar20 + 1" (identifier "iVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar23 = *(int *)(pdVar28 + 0x58);" (assignment_expression "iVar23 = *(int *)(pdVar28 + 0x58)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(pdVar28 + 0x58)" (* "*") (cast_expression "(int *)(pdVar28 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 0x58)" (( "(") (binary_expression "pdVar28 + 0x58" (identifier "pdVar28") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "iVar21 = iVar21 + 0xc;" (assignment_expression "iVar21 = iVar21 + 0xc" (identifier "iVar21") (= "=") (binary_expression "iVar21 + 0xc" (identifier "iVar21") (+ "+") (number_literal "0xc"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar20 < iVar23)" (( "(") (binary_expression "iVar20 < iVar23" (identifier "iVar20") (< "<") (identifier "iVar23")) () ")")) (; ";")) (} "}"))) (if_statement "if (0 < *(int *)(pdVar28 + 3)) {\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }" (if "if") (parenthesized_expression "(0 < *(int *)(pdVar28 + 3))" (( "(") (binary_expression "0 < *(int *)(pdVar28 + 3)" (number_literal "0") (< "<") (pointer_expression "*(int *)(pdVar28 + 3)" (* "*") (cast_expression "(int *)(pdVar28 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 3)" (( "(") (binary_expression "pdVar28 + 3" (identifier "pdVar28") (+ "+") (number_literal "3")) () ")"))))) () ")")) (compound_statement "{\n            iStack_4e8 = 0;\n            uVar34 = 0;\n            do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));\n          }" ({ "{") (expression_statement "iStack_4e8 = 0;" (assignment_expression "iStack_4e8 = 0" (identifier "iStack_4e8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar34 = 0;" (assignment_expression "uVar34 = 0" (identifier "uVar34") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            } while (iStack_4e8 < *(int *)(pdVar28 + 3));" (do "do") (compound_statement "{\n              iVar23 = *(int *)(pdVar28 + 0x58);\n              if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }\n              iVar4 = iVar4 + iVar23 * 4;\n              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;\n              iStack_4e8 = iStack_4e8 + 1;\n            }" ({ "{") (expression_statement "iVar23 = *(int *)(pdVar28 + 0x58);" (assignment_expression "iVar23 = *(int *)(pdVar28 + 0x58)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(pdVar28 + 0x58)" (* "*") (cast_expression "(int *)(pdVar28 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 0x58)" (( "(") (binary_expression "pdVar28 + 0x58" (identifier "pdVar28") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (if_statement "if (0 < iVar23) {\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }" (if "if") (parenthesized_expression "(0 < iVar23)" (( "(") (binary_expression "0 < iVar23" (number_literal "0") (< "<") (identifier "iVar23")) () ")")) (compound_statement "{\n                iVar20 = iVar4 + iVar22 * 4;\n                iVar6 = 0;\n                iVar21 = 0;\n                do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);\n              }" ({ "{") (expression_statement "iVar20 = iVar4 + iVar22 * 4;" (assignment_expression "iVar20 = iVar4 + iVar22 * 4" (identifier "iVar20") (= "=") (binary_expression "iVar4 + iVar22 * 4" (identifier "iVar4") (+ "+") (binary_expression "iVar22 * 4" (identifier "iVar22") (* "*") (number_literal "4")))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" (identifier "iVar21") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                } while (iVar21 < iVar23);" (do "do") (compound_statement "{\n                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);\n                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }\n                  iVar21 = iVar21 + 1;\n                  iVar23 = *(int *)(pdVar28 + 0x58);\n                  iVar6 = iVar6 + 0xc;\n                }" ({ "{") (expression_statement "iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);" (assignment_expression "iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6)" (* "*") (cast_expression "(int *)(*(int *)(pdVar28 + 0x5a) + iVar6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pdVar28 + 0x5a) + iVar6)" (( "(") (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar6" (pointer_expression "*(int *)(pdVar28 + 0x5a)" (* "*") (cast_expression "(int *)(pdVar28 + 0x5a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 0x5a)" (( "(") (binary_expression "pdVar28 + 0x5a" (identifier "pdVar28") (+ "+") (number_literal "0x5a")) () ")")))) (+ "+") (identifier "iVar6")) () ")"))))) (; ";")) (if_statement "if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0" (pointer_expression "*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4)" (* "*") (cast_expression "(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4)" (( "(") (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4" (binary_expression "*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc" (pointer_expression "*(int *)(pdVar28 + 0x5a)" (* "*") (cast_expression "(int *)(pdVar28 + 0x5a)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 0x5a)" (( "(") (binary_expression "pdVar28 + 0x5a" (identifier "pdVar28") (+ "+") (number_literal "0x5a")) () ")")))) (+ "+") (binary_expression "iVar19 * 0xc" (identifier "iVar19") (* "*") (number_literal "0xc"))) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;\n                    if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }\n                  }" ({ "{") (expression_statement "iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;" (assignment_expression "iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc" (identifier "iVar25") (= "=") (binary_expression "*(int *)(iVar3 + 0x2d0) + iVar19 * 0xc" (pointer_expression "*(int *)(iVar3 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar3 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2d0)" (( "(") (binary_expression "iVar3 + 0x2d0" (identifier "iVar3") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (binary_expression "iVar19 * 0xc" (identifier "iVar19") (* "*") (number_literal "0xc")))) (; ";")) (if_statement "if (*(uint *)(iVar25 + 4) != 0) {\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }" (if "if") (parenthesized_expression "(*(uint *)(iVar25 + 4) != 0)" (( "(") (binary_expression "*(uint *)(iVar25 + 4) != 0" (pointer_expression "*(uint *)(iVar25 + 4)" (* "*") (cast_expression "(uint *)(iVar25 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 4)" (( "(") (binary_expression "iVar25 + 4" (identifier "iVar25") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }\n                    }" ({ "{") (if_statement "if ((*(uint *)(iVar25 + 4) & 1) == 0) {\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }\n                      else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }" (if "if") (parenthesized_expression "((*(uint *)(iVar25 + 4) & 1) == 0)" (( "(") (binary_expression "(*(uint *)(iVar25 + 4) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar25 + 4) & 1)" (( "(") (binary_expression "*(uint *)(iVar25 + 4) & 1" (pointer_expression "*(uint *)(iVar25 + 4)" (* "*") (cast_expression "(uint *)(iVar25 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 4)" (( "(") (binary_expression "iVar25 + 4" (identifier "iVar25") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];\n                        (&uStack_2a0)[iVar19] = dVar31;\n                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;\n                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;\n                        if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }\n                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);\n                        uVar29 = (undefined4)uVar34;\n                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;\n                      }" ({ "{") (expression_statement "dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];" (assignment_expression "dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19]" (identifier "dVar31") (= "=") (binary_expression "(double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19]" (cast_expression "(double)(&uStack_2a0)[iVar19]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" (( "(") (pointer_expression "&uStack_2a0" (& "&") (identifier "uStack_2a0")) () ")")) ([ "[") (identifier "iVar19") (] "]"))) (- "-") (cast_expression "(double)(&uStack_4a0)[iVar19]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "(&uStack_4a0)[iVar19]" (parenthesized_expression "(&uStack_4a0)" (( "(") (pointer_expression "&uStack_4a0" (& "&") (identifier "uStack_4a0")) () ")")) ([ "[") (identifier "iVar19") (] "]"))))) (; ";")) (expression_statement "(&uStack_2a0)[iVar19] = dVar31;" (assignment_expression "(&uStack_2a0)[iVar19] = dVar31" (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" (( "(") (pointer_expression "&uStack_2a0" (& "&") (identifier "uStack_2a0")) () ")")) ([ "[") (identifier "iVar19") (] "]")) (= "=") (identifier "dVar31")) (; ";")) (expression_statement "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0" (pointer_expression "*(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4)" (* "*") (cast_expression "(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&uStack_4a0 + iVar19 * 8 + 4)" (( "(") (binary_expression "(int)&uStack_4a0 + iVar19 * 8 + 4" (binary_expression "(int)&uStack_4a0 + iVar19 * 8" (cast_expression "(int)&uStack_4a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_4a0" (& "&") (identifier "uStack_4a0"))) (+ "+") (binary_expression "iVar19 * 8" (identifier "iVar19") (* "*") (number_literal "8"))) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(&uStack_4a0 + iVar19) = 0;" (assignment_expression "*(undefined4 *)(&uStack_4a0 + iVar19) = 0" (pointer_expression "*(undefined4 *)(&uStack_4a0 + iVar19)" (* "*") (cast_expression "(undefined4 *)(&uStack_4a0 + iVar19)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&uStack_4a0 + iVar19)" (( "(") (binary_expression "&uStack_4a0 + iVar19" (pointer_expression "&uStack_4a0" (& "&") (identifier "uStack_4a0")) (+ "+") (identifier "iVar19")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)pdVar17) {\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }" (if "if") (parenthesized_expression "(0 < (int)pdVar17)" (( "(") (binary_expression "0 < (int)pdVar17" (number_literal "0") (< "<") (cast_expression "(int)pdVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar17"))) () ")")) (compound_statement "{\n                          iVar12 = (uVar11 - 1) * 4 * iVar23;\n                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;\n                          pfVar18 = (float *)(iVar4 + iVar21 * 4);\n                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);\n                          dVar30 = 0.0;\n                          pdVar16 = (double *)0x0;\n                          do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);\n                          (&uStack_4a0)[iVar19] = dVar30;\n                          (&uStack_2a0)[iVar19] = dVar31;\n                        }" ({ "{") (expression_statement "iVar12 = (uVar11 - 1) * 4 * iVar23;" (assignment_expression "iVar12 = (uVar11 - 1) * 4 * iVar23" (identifier "iVar12") (= "=") (binary_expression "(uVar11 - 1) * 4 * iVar23" (binary_expression "(uVar11 - 1) * 4" (parenthesized_expression "(uVar11 - 1)" (( "(") (binary_expression "uVar11 - 1" (identifier "uVar11") (- "-") (number_literal "1")) () ")")) (* "*") (number_literal "4")) (* "*") (identifier "iVar23"))) (; ";")) (expression_statement "iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;" (assignment_expression "iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12" (identifier "iVar23") (= "=") (binary_expression "(*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12" (binary_expression "(*(int *)(pdVar28 + 3) + 1) * 4 * iVar23" (binary_expression "(*(int *)(pdVar28 + 3) + 1) * 4" (parenthesized_expression "(*(int *)(pdVar28 + 3) + 1)" (( "(") (binary_expression "*(int *)(pdVar28 + 3) + 1" (pointer_expression "*(int *)(pdVar28 + 3)" (* "*") (cast_expression "(int *)(pdVar28 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 3)" (( "(") (binary_expression "pdVar28 + 3" (identifier "pdVar28") (+ "+") (number_literal "3")) () ")")))) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "4")) (* "*") (identifier "iVar23")) (+ "+") (identifier "iVar12"))) (; ";")) (expression_statement "pfVar18 = (float *)(iVar4 + iVar21 * 4);" (assignment_expression "pfVar18 = (float *)(iVar4 + iVar21 * 4)" (identifier "pfVar18") (= "=") (cast_expression "(float *)(iVar4 + iVar21 * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar21 * 4)" (( "(") (binary_expression "iVar4 + iVar21 * 4" (identifier "iVar4") (+ "+") (binary_expression "iVar21 * 4" (identifier "iVar21") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);" (assignment_expression "pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4)" (identifier "pfVar13") (= "=") (cast_expression "(float *)(iVar4 + iVar12 + iVar21 * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar12 + iVar21 * 4)" (( "(") (binary_expression "iVar4 + iVar12 + iVar21 * 4" (binary_expression "iVar4 + iVar12" (identifier "iVar4") (+ "+") (identifier "iVar12")) (+ "+") (binary_expression "iVar21 * 4" (identifier "iVar21") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "dVar30 = 0.0;" (assignment_expression "dVar30 = 0.0" (identifier "dVar30") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "pdVar16 = (double *)0x0;" (assignment_expression "pdVar16 = (double *)0x0" (identifier "pdVar16") (= "=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          } while (pdVar16 != pdVar17);" (do "do") (compound_statement "{\n                            dVar30 = dVar30 + (double)*pfVar18;\n                            dVar31 = dVar31 + (double)*pfVar13;\n                            pdVar16 = (double *)((int)pdVar16 + 1);\n                            pfVar18 = (float *)((int)pfVar18 + iVar23);\n                            pfVar13 = (float *)((int)pfVar13 + iVar23);\n                          }" ({ "{") (expression_statement "dVar30 = dVar30 + (double)*pfVar18;" (assignment_expression "dVar30 = dVar30 + (double)*pfVar18" (identifier "dVar30") (= "=") (binary_expression "dVar30 + (double)*pfVar18" (identifier "dVar30") (+ "+") (cast_expression "(double)*pfVar18" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*pfVar18" (* "*") (identifier "pfVar18"))))) (; ";")) (expression_statement "dVar31 = dVar31 + (double)*pfVar13;" (assignment_expression "dVar31 = dVar31 + (double)*pfVar13" (identifier "dVar31") (= "=") (binary_expression "dVar31 + (double)*pfVar13" (identifier "dVar31") (+ "+") (cast_expression "(double)*pfVar13" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*pfVar13" (* "*") (identifier "pfVar13"))))) (; ";")) (expression_statement "pdVar16 = (double *)((int)pdVar16 + 1);" (assignment_expression "pdVar16 = (double *)((int)pdVar16 + 1)" (identifier "pdVar16") (= "=") (cast_expression "(double *)((int)pdVar16 + 1)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + 1)" (( "(") (binary_expression "(int)pdVar16 + 1" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pfVar18 = (float *)((int)pfVar18 + iVar23);" (assignment_expression "pfVar18 = (float *)((int)pfVar18 + iVar23)" (identifier "pfVar18") (= "=") (cast_expression "(float *)((int)pfVar18 + iVar23)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pfVar18 + iVar23)" (( "(") (binary_expression "(int)pfVar18 + iVar23" (cast_expression "(int)pfVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pfVar18")) (+ "+") (identifier "iVar23")) () ")")))) (; ";")) (expression_statement "pfVar13 = (float *)((int)pfVar13 + iVar23);" (assignment_expression "pfVar13 = (float *)((int)pfVar13 + iVar23)" (identifier "pfVar13") (= "=") (cast_expression "(float *)((int)pfVar13 + iVar23)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pfVar13 + iVar23)" (( "(") (binary_expression "(int)pfVar13 + iVar23" (cast_expression "(int)pfVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pfVar13")) (+ "+") (identifier "iVar23")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar16 != pdVar17)" (( "(") (binary_expression "pdVar16 != pdVar17" (identifier "pdVar16") (!= "!=") (identifier "pdVar17")) () ")")) (; ";")) (expression_statement "(&uStack_4a0)[iVar19] = dVar30;" (assignment_expression "(&uStack_4a0)[iVar19] = dVar30" (subscript_expression "(&uStack_4a0)[iVar19]" (parenthesized_expression "(&uStack_4a0)" (( "(") (pointer_expression "&uStack_4a0" (& "&") (identifier "uStack_4a0")) () ")")) ([ "[") (identifier "iVar19") (] "]")) (= "=") (identifier "dVar30")) (; ";")) (expression_statement "(&uStack_2a0)[iVar19] = dVar31;" (assignment_expression "(&uStack_2a0)[iVar19] = dVar31" (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" (( "(") (pointer_expression "&uStack_2a0" (& "&") (identifier "uStack_2a0")) () ")")) ([ "[") (identifier "iVar19") (] "]")) (= "=") (identifier "dVar31")) (; ";")) (} "}"))) (expression_statement "dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);" (assignment_expression "dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7)" (identifier "dVar31") (= "=") (cast_expression "(double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7)" (parenthesized_expression "(**(code **)(puVar26 + 0x202a90))" (( "(") (pointer_expression "**(code **)(puVar26 + 0x202a90)" (* "*") (pointer_expression "*(code **)(puVar26 + 0x202a90)" (* "*") (cast_expression "(code **)(puVar26 + 0x202a90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x202a90)" (( "(") (binary_expression "puVar26 + 0x202a90" (identifier "puVar26") (+ "+") (number_literal "0x202a90")) () ")"))))) () ")")) (argument_list "(uVar2,uVar7)" (( "(") (identifier "uVar2") (, ",") (identifier "uVar7") () ")"))))) (; ";")) (expression_statement "uVar29 = (undefined4)uVar34;" (assignment_expression "uVar29 = (undefined4)uVar34" (identifier "uVar29") (= "=") (cast_expression "(undefined4)uVar34" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "uVar34"))) (; ";")) (if_statement "if ((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }\n                        else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }" (if "if") (parenthesized_expression "((double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32)" (( "(") (binary_expression "(double)*(float *)(iVar20 + iVar21 * 4) <=\n                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32" (cast_expression "(double)*(float *)(iVar20 + iVar21 * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(iVar20 + iVar21 * 4)" (* "*") (cast_expression "(float *)(iVar20 + iVar21 * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + iVar21 * 4)" (( "(") (binary_expression "iVar20 + iVar21 * 4" (identifier "iVar20") (+ "+") (binary_expression "iVar21 * 4" (identifier "iVar21") (* "*") (number_literal "4"))) () ")"))))) (<= "<=") (binary_expression "(double)(&uStack_2a0)[iVar19] / dVar31 + dVar32" (binary_expression "(double)(&uStack_2a0)[iVar19] / dVar31" (cast_expression "(double)(&uStack_2a0)[iVar19]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (subscript_expression "(&uStack_2a0)[iVar19]" (parenthesized_expression "(&uStack_2a0)" (( "(") (pointer_expression "&uStack_2a0" (& "&") (identifier "uStack_2a0")) () ")")) ([ "[") (identifier "iVar19") (] "]"))) (/ "/") (identifier "dVar31")) (+ "+") (identifier "dVar32"))) () ")")) (compound_statement "{\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }" ({ "{") (expression_statement "iVar23 = *(int *)(iVar25 + 8);" (assignment_expression "iVar23 = *(int *)(iVar25 + 8)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(iVar25 + 8)" (* "*") (cast_expression "(int *)(iVar25 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 8)" (( "(") (binary_expression "iVar25 + 8" (identifier "iVar25") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }" (else "else") (compound_statement "{\n                          uVar29 = (undefined4)uVar33;\n                          iVar23 = *(int *)(iVar25 + 8);\n                        }" ({ "{") (expression_statement "uVar29 = (undefined4)uVar33;" (assignment_expression "uVar29 = (undefined4)uVar33" (identifier "uVar29") (= "=") (cast_expression "(undefined4)uVar33" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "uVar33"))) (; ";")) (expression_statement "iVar23 = *(int *)(iVar25 + 8);" (assignment_expression "iVar23 = *(int *)(iVar25 + 8)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(iVar25 + 8)" (* "*") (cast_expression "(int *)(iVar25 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 8)" (( "(") (binary_expression "iVar25 + 8" (identifier "iVar25") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;" (assignment_expression "*(undefined4 *)(iVar5 + iVar23 * 4) = uVar29" (pointer_expression "*(undefined4 *)(iVar5 + iVar23 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + iVar23 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + iVar23 * 4)" (( "(") (binary_expression "iVar5 + iVar23 * 4" (identifier "iVar5") (+ "+") (binary_expression "iVar23 * 4" (identifier "iVar23") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar29")) (; ";")) (} "}")) (else_clause "else {\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }" (else "else") (compound_statement "{\n                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);\n                      }" ({ "{") (expression_statement "*(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4);" (assignment_expression "*(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =\n                             *(undefined4 *)(iVar20 + iVar21 * 4)" (pointer_expression "*(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + *(int *)(iVar25 + 8) * 4)" (( "(") (binary_expression "iVar5 + *(int *)(iVar25 + 8) * 4" (identifier "iVar5") (+ "+") (binary_expression "*(int *)(iVar25 + 8) * 4" (pointer_expression "*(int *)(iVar25 + 8)" (* "*") (cast_expression "(int *)(iVar25 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 8)" (( "(") (binary_expression "iVar25 + 8" (identifier "iVar25") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar20 + iVar21 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar20 + iVar21 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + iVar21 * 4)" (( "(") (binary_expression "iVar20 + iVar21 * 4" (identifier "iVar20") (+ "+") (binary_expression "iVar21 * 4" (identifier "iVar21") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" (identifier "iVar21") (= "=") (binary_expression "iVar21 + 1" (identifier "iVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar23 = *(int *)(pdVar28 + 0x58);" (assignment_expression "iVar23 = *(int *)(pdVar28 + 0x58)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(pdVar28 + 0x58)" (* "*") (cast_expression "(int *)(pdVar28 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 0x58)" (( "(") (binary_expression "pdVar28 + 0x58" (identifier "pdVar28") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "iVar6 = iVar6 + 0xc;" (assignment_expression "iVar6 = iVar6 + 0xc" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 0xc" (identifier "iVar6") (+ "+") (number_literal "0xc"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar21 < iVar23)" (( "(") (binary_expression "iVar21 < iVar23" (identifier "iVar21") (< "<") (identifier "iVar23")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar4 = iVar4 + iVar23 * 4;" (assignment_expression "iVar4 = iVar4 + iVar23 * 4" (identifier "iVar4") (= "=") (binary_expression "iVar4 + iVar23 * 4" (identifier "iVar4") (+ "+") (binary_expression "iVar23 * 4" (identifier "iVar23") (* "*") (number_literal "4")))) (; ";")) (expression_statement "iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;" (assignment_expression "iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4" (identifier "iVar5") (= "=") (binary_expression "iVar5 + *(int *)(iVar3 + 0x2c0) * 4" (identifier "iVar5") (+ "+") (binary_expression "*(int *)(iVar3 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar3 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar3 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c0)" (( "(") (binary_expression "iVar3 + 0x2c0" (identifier "iVar3") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (expression_statement "iStack_4e8 = iStack_4e8 + 1;" (assignment_expression "iStack_4e8 = iStack_4e8 + 1" (identifier "iStack_4e8") (= "=") (binary_expression "iStack_4e8 + 1" (identifier "iStack_4e8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iStack_4e8 < *(int *)(pdVar28 + 3))" (( "(") (binary_expression "iStack_4e8 < *(int *)(pdVar28 + 3)" (identifier "iStack_4e8") (< "<") (pointer_expression "*(int *)(pdVar28 + 3)" (* "*") (cast_expression "(int *)(pdVar28 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 3)" (( "(") (binary_expression "pdVar28 + 3" (identifier "pdVar28") (+ "+") (number_literal "3")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "pdVar16 = pdVar8;" (assignment_expression "pdVar16 = pdVar8" (identifier "pdVar16") (= "=") (identifier "pdVar8")) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10)" (parenthesized_expression "(**(code **)(puVar26 + 0x2036a0))" (( "(") (pointer_expression "**(code **)(puVar26 + 0x2036a0)" (* "*") (pointer_expression "*(code **)(puVar26 + 0x2036a0)" (* "*") (cast_expression "(code **)(puVar26 + 0x2036a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x2036a0)" (( "(") (binary_expression "puVar26 + 0x2036a0" (identifier "puVar26") (+ "+") (number_literal "0x2036a0")) () ")"))))) () ")")) (argument_list "(pdVar8,uVar10)" (( "(") (identifier "pdVar8") (, ",") (identifier "uVar10") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n          }" ({ "{") (expression_statement "*(undefined4 *)((int)pdVar15 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar15 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar15 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((int)pdVar15 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar15 + 0x2c)" (( "(") (binary_expression "(int)pdVar15 + 0x2c" (cast_expression "(int)pdVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar15")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (*(int *)(pdVar28 + 0x65) != 0) {\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }" (if "if") (parenthesized_expression "(*(int *)(pdVar28 + 0x65) != 0)" (( "(") (binary_expression "*(int *)(pdVar28 + 0x65) != 0" (pointer_expression "*(int *)(pdVar28 + 0x65)" (* "*") (cast_expression "(int *)(pdVar28 + 0x65)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar28 + 0x65)" (( "(") (binary_expression "pdVar28 + 0x65" (identifier "pdVar28") (+ "+") (number_literal "0x65")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            piVar24 = *(int **)(pdVar15 + 6);\n            (**(code **)(puVar26 + 0x20348c))();\n            uVar14 = piVar24[1] + 1;\n            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;\n            piVar24[1] = uVar14;\n            (**(code **)(puVar26 + 0x2035e0))();\n            pdVar16 = pdVar28;\n            iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));\n            if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }\n          }" ({ "{") (expression_statement "piVar24 = *(int **)(pdVar15 + 6);" (assignment_expression "piVar24 = *(int **)(pdVar15 + 6)" (identifier "piVar24") (= "=") (pointer_expression "*(int **)(pdVar15 + 6)" (* "*") (cast_expression "(int **)(pdVar15 + 6)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar15 + 6)" (( "(") (binary_expression "pdVar15 + 6" (identifier "pdVar15") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar26 + 0x20348c))();" (call_expression "(**(code **)(puVar26 + 0x20348c))()" (parenthesized_expression "(**(code **)(puVar26 + 0x20348c))" (( "(") (pointer_expression "**(code **)(puVar26 + 0x20348c)" (* "*") (pointer_expression "*(code **)(puVar26 + 0x20348c)" (* "*") (cast_expression "(code **)(puVar26 + 0x20348c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x20348c)" (( "(") (binary_expression "puVar26 + 0x20348c" (identifier "puVar26") (+ "+") (number_literal "0x20348c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar14 = piVar24[1] + 1;" (assignment_expression "uVar14 = piVar24[1] + 1" (identifier "uVar14") (= "=") (binary_expression "piVar24[1] + 1" (subscript_expression "piVar24[1]" (identifier "piVar24") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;" (assignment_expression "*piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24" (pointer_expression "*piVar24" (* "*") (identifier "piVar24")) (= "=") (binary_expression "(uint)(uVar14 < (uint)piVar24[1]) + *piVar24" (call_expression "(uint)(uVar14 < (uint)piVar24[1])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < (uint)piVar24[1])" (( "(") (binary_expression "uVar14 < (uint)piVar24[1]" (identifier "uVar14") (< "<") (cast_expression "(uint)piVar24[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar24[1]" (identifier "piVar24") ([ "[") (number_literal "1") (] "]")))) () ")"))) (+ "+") (pointer_expression "*piVar24" (* "*") (identifier "piVar24")))) (; ";")) (expression_statement "piVar24[1] = uVar14;" (assignment_expression "piVar24[1] = uVar14" (subscript_expression "piVar24[1]" (identifier "piVar24") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "(**(code **)(puVar26 + 0x2035e0))();" (call_expression "(**(code **)(puVar26 + 0x2035e0))()" (parenthesized_expression "(**(code **)(puVar26 + 0x2035e0))" (( "(") (pointer_expression "**(code **)(puVar26 + 0x2035e0)" (* "*") (pointer_expression "*(code **)(puVar26 + 0x2035e0)" (* "*") (cast_expression "(code **)(puVar26 + 0x2035e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x2035e0)" (( "(") (binary_expression "puVar26 + 0x2035e0" (identifier "puVar26") (+ "+") (number_literal "0x2035e0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pdVar16 = pdVar28;" (assignment_expression "pdVar16 = pdVar28" (identifier "pdVar16") (= "=") (identifier "pdVar28")) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c));" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c))" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar26 + 0x202e5c))\n                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c))" (parenthesized_expression "(**(code **)(puVar26 + 0x202e5c))" (( "(") (pointer_expression "**(code **)(puVar26 + 0x202e5c)" (* "*") (pointer_expression "*(code **)(puVar26 + 0x202e5c)" (* "*") (cast_expression "(code **)(puVar26 + 0x202e5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x202e5c)" (( "(") (binary_expression "puVar26 + 0x202e5c" (identifier "puVar26") (+ "+") (number_literal "0x202e5c")) () ")"))))) () ")")) (argument_list "(pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),\n                               (*(undefined4 **)(pdVar15 + 6))[1],0,\n                               *(undefined4 *)((int)pdVar28 + 0x1c))" (( "(") (identifier "pdVar28") (, ",") (binary_expression "iVar1 + 0xe60" (identifier "iVar1") (+ "+") (number_literal "0xe60")) (, ",") (pointer_expression "**(undefined4 **)(pdVar15 + 6)" (* "*") (pointer_expression "*(undefined4 **)(pdVar15 + 6)" (* "*") (cast_expression "(undefined4 **)(pdVar15 + 6)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar15 + 6)" (( "(") (binary_expression "pdVar15 + 6" (identifier "pdVar15") (+ "+") (number_literal "6")) () ")"))))) (, ",") (subscript_expression "(*(undefined4 **)(pdVar15 + 6))[1]" (parenthesized_expression "(*(undefined4 **)(pdVar15 + 6))" (( "(") (pointer_expression "*(undefined4 **)(pdVar15 + 6)" (* "*") (cast_expression "(undefined4 **)(pdVar15 + 6)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar15 + 6)" (( "(") (binary_expression "pdVar15 + 6" (identifier "pdVar15") (+ "+") (number_literal "6")) () ")")))) () ")")) ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)((int)pdVar28 + 0x1c)" (* "*") (cast_expression "(undefined4 *)((int)pdVar28 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar28 + 0x1c)" (( "(") (binary_expression "(int)pdVar28 + 0x1c" (cast_expression "(int)pdVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar28")) (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;\n            }" ({ "{") (expression_statement "*(undefined4 *)((int)pdVar15 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar15 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar15 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((int)pdVar15 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar15 + 0x2c)" (( "(") (binary_expression "(int)pdVar15 + 0x2c" (cast_expression "(int)pdVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar15")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iStack_4e4 = iStack_4e4 + 1;" (assignment_expression "iStack_4e4 = iStack_4e4 + 1" (identifier "iStack_4e4") (= "=") (binary_expression "iStack_4e4 + 1" (identifier "iStack_4e4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar35 != iStack_4e4)" (( "(") (binary_expression "iVar35 != iStack_4e4" (identifier "iVar35") (!= "!=") (identifier "iStack_4e4")) () ")")) (; ";")) (} "}"))) (if_statement "if (iStack_9c != **(int **)(puVar26 + 0x2033d8)) {\n    pcVar27 = *(code **)(puVar26 + 0x20320c);\n    (*pcVar27)();\n    iVar35 = *(int *)(pdVar16 + 1);\n    iVar4 = *(int *)(iVar35 + 0x1c);\n    iVar1 = (**(code **)(pcVar27 + 0x203418))();\n    iVar3 = (**(code **)(pcVar27 + 0x203014))();\n    if (iVar1 == 0) {\n      trap(7);\n    }\n    iVar5 = iVar4 / iVar1;\n    iVar4 = iVar4 % iVar1;\n    if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }\n    iVar4 = iVar5 * iVar3 + iVar4;\n    iVar5 = iVar5 + iVar4;\n    iVar1 = *(int *)(pcVar27 + 0x2023d4);\n    if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(iStack_9c != **(int **)(puVar26 + 0x2033d8))" (( "(") (binary_expression "iStack_9c != **(int **)(puVar26 + 0x2033d8)" (identifier "iStack_9c") (!= "!=") (pointer_expression "**(int **)(puVar26 + 0x2033d8)" (* "*") (pointer_expression "*(int **)(puVar26 + 0x2033d8)" (* "*") (cast_expression "(int **)(puVar26 + 0x2033d8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x2033d8)" (( "(") (binary_expression "puVar26 + 0x2033d8" (identifier "puVar26") (+ "+") (number_literal "0x2033d8")) () ")")))))) () ")")) (compound_statement "{\n    pcVar27 = *(code **)(puVar26 + 0x20320c);\n    (*pcVar27)();\n    iVar35 = *(int *)(pdVar16 + 1);\n    iVar4 = *(int *)(iVar35 + 0x1c);\n    iVar1 = (**(code **)(pcVar27 + 0x203418))();\n    iVar3 = (**(code **)(pcVar27 + 0x203014))();\n    if (iVar1 == 0) {\n      trap(7);\n    }\n    iVar5 = iVar4 / iVar1;\n    iVar4 = iVar4 % iVar1;\n    if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }\n    iVar4 = iVar5 * iVar3 + iVar4;\n    iVar5 = iVar5 + iVar4;\n    iVar1 = *(int *)(pcVar27 + 0x2023d4);\n    if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }\n    return iVar1;\n  }" ({ "{") (expression_statement "pcVar27 = *(code **)(puVar26 + 0x20320c);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0x20320c)" (identifier "pcVar27") (= "=") (pointer_expression "*(code **)(puVar26 + 0x20320c)" (* "*") (cast_expression "(code **)(puVar26 + 0x20320c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x20320c)" (( "(") (binary_expression "puVar26 + 0x20320c" (identifier "puVar26") (+ "+") (number_literal "0x20320c")) () ")"))))) (; ";")) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" (( "(") (pointer_expression "*pcVar27" (* "*") (identifier "pcVar27")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar35 = *(int *)(pdVar16 + 1);" (assignment_expression "iVar35 = *(int *)(pdVar16 + 1)" (identifier "iVar35") (= "=") (pointer_expression "*(int *)(pdVar16 + 1)" (* "*") (cast_expression "(int *)(pdVar16 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 1)" (( "(") (binary_expression "pdVar16 + 1" (identifier "pdVar16") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(iVar35 + 0x1c);" (assignment_expression "iVar4 = *(int *)(iVar35 + 0x1c)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar35 + 0x1c)" (* "*") (cast_expression "(int *)(iVar35 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + 0x1c)" (( "(") (binary_expression "iVar35 + 0x1c" (identifier "iVar35") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "iVar1 = (**(code **)(pcVar27 + 0x203418))();" (assignment_expression "iVar1 = (**(code **)(pcVar27 + 0x203418))()" (identifier "iVar1") (= "=") (call_expression "(**(code **)(pcVar27 + 0x203418))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x203418))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x203418)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x203418)" (* "*") (cast_expression "(code **)(pcVar27 + 0x203418)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x203418)" (( "(") (binary_expression "pcVar27 + 0x203418" (identifier "pcVar27") (+ "+") (number_literal "0x203418")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar27 + 0x203014))();" (assignment_expression "iVar3 = (**(code **)(pcVar27 + 0x203014))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar27 + 0x203014))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x203014))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x203014)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x203014)" (* "*") (cast_expression "(code **)(pcVar27 + 0x203014)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x203014)" (( "(") (binary_expression "pcVar27 + 0x203014" (identifier "pcVar27") (+ "+") (number_literal "0x203014")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      trap(7);\n    }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = iVar4 / iVar1;" (assignment_expression "iVar5 = iVar4 / iVar1" (identifier "iVar5") (= "=") (binary_expression "iVar4 / iVar1" (identifier "iVar4") (/ "/") (identifier "iVar1"))) (; ";")) (expression_statement "iVar4 = iVar4 % iVar1;" (assignment_expression "iVar4 = iVar4 % iVar1" (identifier "iVar4") (= "=") (binary_expression "iVar4 % iVar1" (identifier "iVar4") (% "%") (identifier "iVar1"))) (; ";")) (if_statement "if (iVar3 < iVar4) {\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }" (if "if") (parenthesized_expression "(iVar3 < iVar4)" (( "(") (binary_expression "iVar3 < iVar4" (identifier "iVar3") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n      iVar5 = iVar5 + 1;\n      iVar4 = 0;\n    }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar4 = iVar5 * iVar3 + iVar4;" (assignment_expression "iVar4 = iVar5 * iVar3 + iVar4" (identifier "iVar4") (= "=") (binary_expression "iVar5 * iVar3 + iVar4" (binary_expression "iVar5 * iVar3" (identifier "iVar5") (* "*") (identifier "iVar3")) (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "iVar5 = iVar5 + iVar4;" (assignment_expression "iVar5 = iVar5 + iVar4" (identifier "iVar5") (= "=") (binary_expression "iVar5 + iVar4" (identifier "iVar5") (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "iVar1 = *(int *)(pcVar27 + 0x2023d4);" (assignment_expression "iVar1 = *(int *)(pcVar27 + 0x2023d4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x2023d4)" (* "*") (cast_expression "(int *)(pcVar27 + 0x2023d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x2023d4)" (( "(") (binary_expression "pcVar27 + 0x2023d4" (identifier "pcVar27") (+ "+") (number_literal "0x2023d4")) () ")"))))) (; ";")) (if_statement "if (iVar4 < iVar5) {\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }" (if "if") (parenthesized_expression "(iVar4 < iVar5)" (( "(") (binary_expression "iVar4 < iVar5" (identifier "iVar4") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n      uVar7 = *(undefined4 *)(pdVar16 + 2);\n      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);\n      dVar32 = *pdVar16;\n      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);\n      iVar3 = *(int *)(pcVar27 + 0x2023ec);\n      do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);\n    }" ({ "{") (expression_statement "uVar7 = *(undefined4 *)(pdVar16 + 2);" (assignment_expression "uVar7 = *(undefined4 *)(pdVar16 + 2)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)(pdVar16 + 2)" (* "*") (cast_expression "(undefined4 *)(pdVar16 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 2)" (( "(") (binary_expression "pdVar16 + 2" (identifier "pdVar16") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);" (assignment_expression "uVar2 = *(undefined4 *)((int)pdVar16 + 0xc)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar16 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pdVar16 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + 0xc)" (( "(") (binary_expression "(int)pdVar16 + 0xc" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "dVar32 = *pdVar16;" (assignment_expression "dVar32 = *pdVar16" (identifier "dVar32") (= "=") (pointer_expression "*pdVar16" (* "*") (identifier "pdVar16"))) (; ";")) (expression_statement "uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);" (assignment_expression "uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8)" (identifier "uVar33") (= "=") (binary_expression "(ulonglong)*(uint *)(iVar1 + 0x4aa8)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(iVar1 + 0x4aa8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x4aa8)" (( "(") (binary_expression "iVar1 + 0x4aa8" (identifier "iVar1") (+ "+") (number_literal "0x4aa8")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(pcVar27 + 0x2023ec);" (assignment_expression "iVar3 = *(int *)(pcVar27 + 0x2023ec)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pcVar27 + 0x2023ec)" (* "*") (cast_expression "(int *)(pcVar27 + 0x2023ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0x2023ec)" (( "(") (binary_expression "pcVar27 + 0x2023ec" (identifier "pcVar27") (+ "+") (number_literal "0x2023ec")) () ")"))))) (; ";")) (do_statement "do {\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      } while (iVar5 != iVar4);" (do "do") (compound_statement "{\n        iVar1 = 1;\n        if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }\n        iVar4 = iVar4 + 1;\n      }" ({ "{") (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" (identifier "iVar1") (= "=") (number_literal "1")) (; ";")) (if_statement "if (*(int *)((int)pdVar16 + 0x14) != 0) {\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)((int)pdVar16 + 0x14) != 0)" (( "(") (binary_expression "*(int *)((int)pdVar16 + 0x14) != 0" (pointer_expression "*(int *)((int)pdVar16 + 0x14)" (* "*") (cast_expression "(int *)((int)pdVar16 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + 0x14)" (( "(") (binary_expression "(int)pdVar16 + 0x14" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);\n          if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);" (assignment_expression "pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2)" (identifier "pfVar13") (= "=") (cast_expression "(float *)(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar27 + 0x203158))\n                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x203158))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x203158)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x203158)" (* "*") (cast_expression "(code **)(pcVar27 + 0x203158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x203158)" (( "(") (binary_expression "pcVar27 + 0x203158" (identifier "pcVar27") (+ "+") (number_literal "0x203158")) () ")"))))) () ")")) (argument_list "(uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2)" (( "(") (identifier "uVar7") (, ",") (number_literal "0") (, ",") (identifier "iVar4") (, ",") (pointer_expression "*(undefined4 *)(iVar35 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar35 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + 0x18)" (( "(") (binary_expression "iVar35 + 0x18" (identifier "iVar35") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "uVar2") () ")"))))) (; ";")) (if_statement "if (pfVar13 == (float *)0x0) {\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }\n          else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(pfVar13 == (float *)0x0)" (( "(") (binary_expression "pfVar13 == (float *)0x0" (identifier "pfVar13") (== "==") (cast_expression "(float *)0x0" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            iVar1 = 0;\n          }" ({ "{") (expression_statement "*(undefined4 *)((int)pdVar16 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar16 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar16 + 0x14)" (* "*") (cast_expression "(undefined4 *)((int)pdVar16 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + 0x14)" (( "(") (binary_expression "(int)pdVar16 + 0x14" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }" (else "else") (compound_statement "{\n            iVar1 = 0;\n            if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }\n            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);\n            if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }\n            iVar1 = *(int *)(iVar35 + 0x328);\n            if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }\n          }" ({ "{") (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < *(int *)(iVar35 + 0x18)) {\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar35 + 0x18))" (( "(") (binary_expression "0 < *(int *)(iVar35 + 0x18)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar35 + 0x18)" (* "*") (cast_expression "(int *)(iVar35 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + 0x18)" (( "(") (binary_expression "iVar35 + 0x18" (identifier "iVar35") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n              do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));\n            }" ({ "{") (do_statement "do {\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              } while (iVar1 < *(int *)(iVar35 + 0x18));" (do "do") (compound_statement "{\n                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);\n                iVar22 = *(int *)(iVar35 + 0x2c0);\n                if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }\n                pfVar13 = pfVar13 + iVar22;\n                iVar1 = iVar1 + 1;\n              }" ({ "{") (expression_statement "dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);" (assignment_expression "dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13)" (identifier "dVar31") (= "=") (cast_expression "(double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13)" (parenthesized_expression "(**(code **)(pcVar27 + 0x202964))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x202964)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x202964)" (* "*") (cast_expression "(code **)(pcVar27 + 0x202964)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x202964)" (( "(") (binary_expression "pcVar27 + 0x202964" (identifier "pcVar27") (+ "+") (number_literal "0x202964")) () ")"))))) () ")")) (argument_list "(iVar35,pfVar13)" (( "(") (identifier "iVar35") (, ",") (identifier "pfVar13") () ")"))))) (; ";")) (expression_statement "iVar22 = *(int *)(iVar35 + 0x2c0);" (assignment_expression "iVar22 = *(int *)(iVar35 + 0x2c0)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(iVar35 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar35 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + 0x2c0)" (( "(") (binary_expression "iVar35 + 0x2c0" (identifier "iVar35") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (if_statement "if (0 < iVar22) {\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }" (if "if") (parenthesized_expression "(0 < iVar22)" (( "(") (binary_expression "0 < iVar22" (number_literal "0") (< "<") (identifier "iVar22")) () ")")) (compound_statement "{\n                  iVar20 = 0;\n                  iVar23 = 0;\n                  pfVar18 = pfVar13;\n                  do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);\n                }" ({ "{") (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" (identifier "iVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "pfVar18 = pfVar13;" (assignment_expression "pfVar18 = pfVar13" (identifier "pfVar18") (= "=") (identifier "pfVar13")) (; ";")) (do_statement "do {\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  } while (iVar23 < iVar22);" (do "do") (compound_statement "{\n                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }\n                    iVar23 = iVar23 + 1;\n                    iVar22 = *(int *)(iVar35 + 0x2c0);\n                    iVar20 = iVar20 + 0xc;\n                    pfVar18 = pfVar18 + 1;\n                  }" ({ "{") (if_statement "if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)\n                    {\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }" (if "if") (parenthesized_expression "((*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)" (( "(") (binary_expression "(*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2)" (( "(") (binary_expression "*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2" (pointer_expression "*(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4)" (* "*") (cast_expression "(uint *)(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4)" (( "(") (binary_expression "*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4" (binary_expression "*(int *)(iVar35 + 0x2d0) +\n                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc" (pointer_expression "*(int *)(iVar35 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar35 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + 0x2d0)" (( "(") (binary_expression "iVar35 + 0x2d0" (identifier "iVar35") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (binary_expression "*(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc" (pointer_expression "*(int *)(*(int *)(iVar35 + 0x2d0) + iVar20)" (* "*") (cast_expression "(int *)(*(int *)(iVar35 + 0x2d0) + iVar20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar35 + 0x2d0) + iVar20)" (( "(") (binary_expression "*(int *)(iVar35 + 0x2d0) + iVar20" (pointer_expression "*(int *)(iVar35 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar35 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + 0x2d0)" (( "(") (binary_expression "iVar35 + 0x2d0" (identifier "iVar35") (+ "+") (number_literal "0x2d0")) () ")")))) (+ "+") (identifier "iVar20")) () ")")))) (* "*") (number_literal "0xc"))) (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }\n                      if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }\n                    }" ({ "{") (if_statement "if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {\n                        dVar31 = (double)*pfVar18;\n                      }" (if "if") (parenthesized_expression "(*(int *)(iVar35 + 0x2cc) != 0x7ffffff)" (( "(") (binary_expression "*(int *)(iVar35 + 0x2cc) != 0x7ffffff" (pointer_expression "*(int *)(iVar35 + 0x2cc)" (* "*") (cast_expression "(int *)(iVar35 + 0x2cc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + 0x2cc)" (( "(") (binary_expression "iVar35 + 0x2cc" (identifier "iVar35") (+ "+") (number_literal "0x2cc")) () ")")))) (!= "!=") (number_literal "0x7ffffff")) () ")")) (compound_statement "{\n                        dVar31 = (double)*pfVar18;\n                      }" ({ "{") (expression_statement "dVar31 = (double)*pfVar18;" (assignment_expression "dVar31 = (double)*pfVar18" (identifier "dVar31") (= "=") (cast_expression "(double)*pfVar18" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*pfVar18" (* "*") (identifier "pfVar18")))) (; ";")) (} "}"))) (if_statement "if (dVar31 <= dVar32) {\n                        *pfVar18 = 0.0;\n                      }\n                      else {\n                        *pfVar18 = (float)uVar33;\n                      }" (if "if") (parenthesized_expression "(dVar31 <= dVar32)" (( "(") (binary_expression "dVar31 <= dVar32" (identifier "dVar31") (<= "<=") (identifier "dVar32")) () ")")) (compound_statement "{\n                        *pfVar18 = 0.0;\n                      }" ({ "{") (expression_statement "*pfVar18 = 0.0;" (assignment_expression "*pfVar18 = 0.0" (pointer_expression "*pfVar18" (* "*") (identifier "pfVar18")) (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else {\n                        *pfVar18 = (float)uVar33;\n                      }" (else "else") (compound_statement "{\n                        *pfVar18 = (float)uVar33;\n                      }" ({ "{") (expression_statement "*pfVar18 = (float)uVar33;" (assignment_expression "*pfVar18 = (float)uVar33" (pointer_expression "*pfVar18" (* "*") (identifier "pfVar18")) (= "=") (cast_expression "(float)uVar33" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar33"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" (identifier "iVar23") (= "=") (binary_expression "iVar23 + 1" (identifier "iVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar22 = *(int *)(iVar35 + 0x2c0);" (assignment_expression "iVar22 = *(int *)(iVar35 + 0x2c0)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(iVar35 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar35 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + 0x2c0)" (( "(") (binary_expression "iVar35 + 0x2c0" (identifier "iVar35") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (expression_statement "iVar20 = iVar20 + 0xc;" (assignment_expression "iVar20 = iVar20 + 0xc" (identifier "iVar20") (= "=") (binary_expression "iVar20 + 0xc" (identifier "iVar20") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "pfVar18 = pfVar18 + 1;" (assignment_expression "pfVar18 = pfVar18 + 1" (identifier "pfVar18") (= "=") (binary_expression "pfVar18 + 1" (identifier "pfVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar23 < iVar22)" (( "(") (binary_expression "iVar23 < iVar22" (identifier "iVar23") (< "<") (identifier "iVar22")) () ")")) (; ";")) (} "}"))) (expression_statement "pfVar13 = pfVar13 + iVar22;" (assignment_expression "pfVar13 = pfVar13 + iVar22" (identifier "pfVar13") (= "=") (binary_expression "pfVar13 + iVar22" (identifier "pfVar13") (+ "+") (identifier "iVar22"))) (; ";")) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" (identifier "iVar1") (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar1 < *(int *)(iVar35 + 0x18))" (( "(") (binary_expression "iVar1 < *(int *)(iVar35 + 0x18)" (identifier "iVar1") (< "<") (pointer_expression "*(int *)(iVar35 + 0x18)" (* "*") (cast_expression "(int *)(iVar35 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + 0x18)" (( "(") (binary_expression "iVar35 + 0x18" (identifier "iVar35") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);" (assignment_expression "iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(pcVar27 + 0x203004))(uVar7,uVar2)" (parenthesized_expression "(**(code **)(pcVar27 + 0x203004))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x203004)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x203004)" (* "*") (cast_expression "(code **)(pcVar27 + 0x203004)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x203004)" (( "(") (binary_expression "pcVar27 + 0x203004" (identifier "pcVar27") (+ "+") (number_literal "0x203004")) () ")"))))) () ")")) (argument_list "(uVar7,uVar2)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar2") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n            }" ({ "{") (expression_statement "*(undefined4 *)((int)pdVar16 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar16 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar16 + 0x14)" (* "*") (cast_expression "(undefined4 *)((int)pdVar16 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + 0x14)" (( "(") (binary_expression "(int)pdVar16 + 0x14" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar1 = *(int *)(iVar35 + 0x328);" (assignment_expression "iVar1 = *(int *)(iVar35 + 0x328)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(iVar35 + 0x328)" (* "*") (cast_expression "(int *)(iVar35 + 0x328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + 0x328)" (( "(") (binary_expression "iVar35 + 0x328" (identifier "iVar35") (+ "+") (number_literal "0x328")) () ")"))))) (; ";")) (if_statement "if (iVar1 != 0) {\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              piVar24 = *(int **)(pdVar16 + 3);\n              (**(code **)(pcVar27 + 0x202df0))();\n              uVar11 = piVar24[1] + 1;\n              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;\n              piVar24[1] = uVar11;\n              (**(code **)(pcVar27 + 0x202f44))();\n              piVar24 = *(int **)(pdVar16 + 3);\n              iVar1 = *piVar24;\n              uVar11 = piVar24[1];\n              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;\n              piVar24[1] = uVar11 + 1;\n              iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;\n              if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }\n            }" ({ "{") (expression_statement "piVar24 = *(int **)(pdVar16 + 3);" (assignment_expression "piVar24 = *(int **)(pdVar16 + 3)" (identifier "piVar24") (= "=") (pointer_expression "*(int **)(pdVar16 + 3)" (* "*") (cast_expression "(int **)(pdVar16 + 3)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar16 + 3)" (( "(") (binary_expression "pdVar16 + 3" (identifier "pdVar16") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x202df0))();" (call_expression "(**(code **)(pcVar27 + 0x202df0))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x202df0))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x202df0)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x202df0)" (* "*") (cast_expression "(code **)(pcVar27 + 0x202df0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x202df0)" (( "(") (binary_expression "pcVar27 + 0x202df0" (identifier "pcVar27") (+ "+") (number_literal "0x202df0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar11 = piVar24[1] + 1;" (assignment_expression "uVar11 = piVar24[1] + 1" (identifier "uVar11") (= "=") (binary_expression "piVar24[1] + 1" (subscript_expression "piVar24[1]" (identifier "piVar24") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;" (assignment_expression "*piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24" (pointer_expression "*piVar24" (* "*") (identifier "piVar24")) (= "=") (binary_expression "(uint)(uVar11 < (uint)piVar24[1]) + *piVar24" (call_expression "(uint)(uVar11 < (uint)piVar24[1])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar11 < (uint)piVar24[1])" (( "(") (binary_expression "uVar11 < (uint)piVar24[1]" (identifier "uVar11") (< "<") (cast_expression "(uint)piVar24[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar24[1]" (identifier "piVar24") ([ "[") (number_literal "1") (] "]")))) () ")"))) (+ "+") (pointer_expression "*piVar24" (* "*") (identifier "piVar24")))) (; ";")) (expression_statement "piVar24[1] = uVar11;" (assignment_expression "piVar24[1] = uVar11" (subscript_expression "piVar24[1]" (identifier "piVar24") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "(**(code **)(pcVar27 + 0x202f44))();" (call_expression "(**(code **)(pcVar27 + 0x202f44))()" (parenthesized_expression "(**(code **)(pcVar27 + 0x202f44))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x202f44)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x202f44)" (* "*") (cast_expression "(code **)(pcVar27 + 0x202f44)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x202f44)" (( "(") (binary_expression "pcVar27 + 0x202f44" (identifier "pcVar27") (+ "+") (number_literal "0x202f44")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar24 = *(int **)(pdVar16 + 3);" (assignment_expression "piVar24 = *(int **)(pdVar16 + 3)" (identifier "piVar24") (= "=") (pointer_expression "*(int **)(pdVar16 + 3)" (* "*") (cast_expression "(int **)(pdVar16 + 3)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pdVar16 + 3)" (( "(") (binary_expression "pdVar16 + 3" (identifier "pdVar16") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "iVar1 = *piVar24;" (assignment_expression "iVar1 = *piVar24" (identifier "iVar1") (= "=") (pointer_expression "*piVar24" (* "*") (identifier "piVar24"))) (; ";")) (expression_statement "uVar11 = piVar24[1];" (assignment_expression "uVar11 = piVar24[1]" (identifier "uVar11") (= "=") (subscript_expression "piVar24[1]" (identifier "piVar24") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;" (assignment_expression "*piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1" (pointer_expression "*piVar24" (* "*") (identifier "piVar24")) (= "=") (binary_expression "(uint)(uVar11 + 1 < uVar11) + iVar1" (call_expression "(uint)(uVar11 + 1 < uVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar11 + 1 < uVar11)" (( "(") (binary_expression "uVar11 + 1 < uVar11" (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1")) (< "<") (identifier "uVar11")) () ")"))) (+ "+") (identifier "iVar1"))) (; ";")) (expression_statement "piVar24[1] = uVar11 + 1;" (assignment_expression "piVar24[1] = uVar11 + 1" (subscript_expression "piVar24[1]" (identifier "piVar24") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))\n              ;" (assignment_expression "iVar1 = (**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))" (identifier "iVar1") (= "=") (call_expression "(**(code **)(pcVar27 + 0x2027c0))\n                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))" (parenthesized_expression "(**(code **)(pcVar27 + 0x2027c0))" (( "(") (pointer_expression "**(code **)(pcVar27 + 0x2027c0)" (* "*") (pointer_expression "*(code **)(pcVar27 + 0x2027c0)" (* "*") (cast_expression "(code **)(pcVar27 + 0x2027c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar27 + 0x2027c0)" (( "(") (binary_expression "pcVar27 + 0x2027c0" (identifier "pcVar27") (+ "+") (number_literal "0x2027c0")) () ")"))))) () ")")) (argument_list "(iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))" (( "(") (identifier "iVar35") (, ",") (binary_expression "iVar3 + 0xe68" (identifier "iVar3") (+ "+") (number_literal "0xe68")) (, ",") (identifier "iVar1") (, ",") (identifier "uVar11") (, ",") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)(iVar35 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar35 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + 0x1c)" (( "(") (binary_expression "iVar35 + 0x1c" (identifier "iVar35") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *(undefined4 *)((int)pdVar16 + 0x14) = 0;\n              }" ({ "{") (expression_statement "*(undefined4 *)((int)pdVar16 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar16 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar16 + 0x14)" (* "*") (cast_expression "(undefined4 *)((int)pdVar16 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + 0x14)" (( "(") (binary_expression "(int)pdVar16 + 0x14" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 != iVar4)" (( "(") (binary_expression "iVar5 != iVar4" (identifier "iVar5") (!= "!=") (identifier "iVar4")) () ")")) (; ";")) (} "}"))) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (return_statement "return **(int **)(puVar26 + 0x2033d8);" (return "return") (pointer_expression "**(int **)(puVar26 + 0x2033d8)" (* "*") (pointer_expression "*(int **)(puVar26 + 0x2033d8)" (* "*") (cast_expression "(int **)(puVar26 + 0x2033d8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0x2033d8)" (( "(") (binary_expression "puVar26 + 0x2033d8" (identifier "puVar26") (+ "+") (number_literal "0x2033d8")) () ")"))))) (; ";")) (} "}")))

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

type_1 * function_1(type_1 *var_1,type_2 *exception)

{
  double *var_10;
  type_1 *var_7;
  size_t sVar3;
  int var_12;
  int var_15;
  type_3 uVar6;
  int var_19;
  int var_20;
  int var_24;
  type_3 uVar10;
  double *pdVar11;
  type_3 uVar12;
  type_3 uVar13;
  type_4 var_17;
  int var_33;
  float *var_28;
  type_4 var_25;
  double *var_29;
  double *var_30;
  float *var_39;
  int var_23;
  int var_26;
  int var_22;
  int var_31;
  int var_21;
  int *piVar26;
  int var_32;
  type_5 *var_11;
  type_6 *var_38;
  double *var_18;
  type_3 uVar31;
  double var_34;
  double var_27;
  double var_35;
  type_7 uVar35;
  type_8 uVar36;
  int var_16;
  int var_36;
  int var_14;
  type_8 uStack_4a0;
  type_8 uStack_2a0;
  type_1 *var_37;
  type_1 *pIStack_98;
  type_1 *pIStack_94;
  type_2 *pEStack_90;
  size_t var_5;
  size_t var_6;
  int var_8;
  int var_9;
  type_9 geometry;
  
  var_10 = *(double **)PTR___stack_chk_guard_003fa248;
  if (var_1 == (type_1 *)0x0) {
    var_7 = (type_1 *)(*(type_6 *)PTR___assert_fail_003fa620)
                                (var_2 + -0x7b0,
                                 var_3 + 0xbd4,0x96e,
                                 var_3 + 0xca8);
    return var_7;
  }
  if (var_1->signature != 0xabacadab) {
    var_7 = (type_1 *)(*(type_6 *)PTR___assert_fail_003fa620)
                                (var_2 + -0x784,
                                 var_3 + 0xbd4,0x96f,
                                 var_3 + 0xca8);
    return var_7;
  }
  if (var_1->debug != var_4) {
    (*(type_6 *)PTR_LogMagickEvent_003fa1f8)
              (0x8000,var_3 + 0xbd4,
               var_3 + 0xc9c,0x971);
  }
  (*(type_6 *)PTR_GetImageBoundingBox_003fa9a0)(&var_5,var_1,exception);
  geometry.width = var_5;
  geometry.height = var_6;
  geometry.x = var_8;
  geometry.y = var_9;
  if ((var_5 == 0) || (var_6 == 0)) {
    var_7 = (type_1 *)(*(type_6 *)PTR_CloneImage_003fa848)(var_1,1,1,1);
    if (var_7 != (type_1 *)0x0) {
      (var_7->background_color).alpha_trait = BlendPixelTrait;
      *(type_3 *)((int)&(var_7->background_color).alpha + 4) = 0;
      *(type_3 *)&(var_7->background_color).alpha = 0;
      (*(type_6 *)PTR_SetImageBackgroundColor_003f9ea8)(var_7,exception);
      sVar3 = (var_1->page).height;
      (var_7->page).width = (var_1->page).width;
      (var_7->page).height = sVar3;
      (var_7->page).x = -1;
      (var_7->page).y = -1;
    }
  }
  else {
    geometry.x = var_8 + (var_1->page).x;
    geometry.y = var_9 + (var_1->page).y;
    var_7 = (type_1 *)(*(type_6 *)PTR_CropImage_003fa0d0)(var_1,&geometry,exception);
    if (var_7 != (type_1 *)0x0) {
      (*(type_6 *)PTR_Update8BIMClipPath_003f9ba0)(var_7,var_1->columns,var_1->rows,&geometry);
    }
  }
  if (var_10 == *(double **)PTR___stack_chk_guard_003fa248) {
    return var_7;
  }
  var_11 = PTR___stack_chk_fail_003fa07c;
  (*(type_6 *)PTR___stack_chk_fail_003fa07c)();
  var_37 = (type_1 *)**(type_3 **)(var_11 + 0x2033d8);
  var_18 = *(double **)(var_10 + 2);
  var_14 = *(int *)((int)var_18 + 0x1c);
  pIStack_98 = var_1;
  pIStack_94 = var_7;
  pEStack_90 = exception;
  var_12 = (**(type_6 **)(var_11 + 0x203ab4))();
  var_15 = (**(type_6 **)(var_11 + 0x2036b0))();
  if (var_12 == 0) {
    var_13(7);
  }
  var_16 = var_14 / var_12;
  var_14 = var_14 % var_12;
  if (var_15 < var_14) {
    var_16 = var_16 + 1;
    var_14 = 0;
  }
  var_29 = (double *)(var_16 * var_15);
  var_14 = (int)var_29 + var_14;
  var_16 = var_16 + var_14;
  if (var_14 < var_16) {
    uVar10 = *(type_3 *)((int)var_10 + 0xc);
    uVar6 = *(type_3 *)(var_10 + 1);
    var_15 = *(int *)(var_10 + 5);
    pdVar11 = *(double **)((int)var_10 + 0x24);
    uVar12 = *(type_3 *)(var_10 + 4);
    uVar13 = *(type_3 *)((int)var_10 + 0x1c);
    var_35 = *var_10;
    var_30 = *(double **)(var_10 + 3);
    var_17 = *(type_4 *)((int)var_10 + 0x14);
    var_12 = *(int *)(var_11 + 0x202a88);
    uVar35 = (type_7)*(type_4 *)(*(int *)(var_11 + 0x202a70) + 0x4aa8);
    var_29 = var_30;
    do {
      if (*(int *)((int)var_10 + 0x2c) != 0) {
        var_19 = (**(type_6 **)(var_11 + 0x203804))
                          (uVar12,-((int)var_17 / 2),var_14 - ((type_4)var_30 >> 1),
                           var_17 + *(int *)(var_18 + 3),var_30,uVar13);
        var_29 = pdVar11;
        var_20 = (**(type_6 **)(var_11 + 0x202df8))
                          (pdVar11,0,var_14,*(type_3 *)(var_15 + 0x18),1,uVar13);
        if ((var_19 == 0) || (var_20 == 0)) {
          *(type_3 *)((int)var_10 + 0x2c) = 0;
        }
        else {
          var_21 = *(int *)(var_18 + 0x58);
          var_31 = ((var_17 + *(int *)(var_18 + 3)) * ((type_4)var_30 >> 1) + (var_17 >> 1)) *
                   var_21;
          if (0 < var_21) {
            var_22 = 0;
            var_26 = 0;
            do {
              var_23 = *(int *)(*(int *)(var_18 + 0x5a) + var_22);
              var_24 = var_23 * 0xc;
              if ((*(int *)(*(int *)(var_18 + 0x5a) + var_24 + 4) != 0) &&
                 (var_25 = *(type_4 *)(*(int *)(var_15 + 0x2d0) + var_24 + 4), var_25 != 0)) {
                if ((var_25 & 1) == 0) {
                  *(type_3 *)((int)&uStack_4a0 + var_23 * 8 + 4) = 0;
                  *(type_3 *)(&uStack_4a0 + var_23) = 0;
                  *(type_3 *)((int)&uStack_2a0 + var_23 * 8 + 4) = 0;
                  *(type_3 *)(&uStack_2a0 + var_23) = 0;
                  if (0 < (int)var_30) {
                    var_29 = (double *)0x0;
                    var_24 = var_19;
                    do {
                      var_28 = (float *)(var_24 + var_26 * 4);
                      if (0 < (int)var_17) {
                        var_27 = (double)(&uStack_2a0)[var_23];
                        var_25 = 0;
                        do {
                          if (var_17 - 1 == var_25) {
                            (&uStack_4a0)[var_23] = (double)(&uStack_4a0)[var_23] + (double)*var_28
                            ;
                          }
                          var_27 = var_27 + (double)*var_28;
                          var_25 = var_25 + 1;
                          var_28 = var_28 + var_21;
                        } while (var_17 != var_25);
                        var_24 = var_24 + var_17 * var_21 * 4;
                        (&uStack_2a0)[var_23] = var_27;
                      }
                      var_29 = (double *)((int)var_29 + 1);
                      var_24 = *(int *)(var_18 + 3) * 4 * var_21 + var_24;
                    } while (var_29 != var_30);
                  }
                }
                else {
                  var_24 = *(int *)(var_15 + 0x2d0) + var_24;
                  if (*(int *)(var_24 + 4) != 0) {
                    *(type_3 *)(var_20 + *(int *)(var_24 + 8) * 4) =
                         *(type_3 *)(var_19 + var_26 * 4 + var_31 * 4);
                  }
                }
              }
              var_26 = var_26 + 1;
              var_21 = *(int *)(var_18 + 0x58);
              var_22 = var_22 + 0xc;
            } while (var_26 < var_21);
          }
          if (0 < *(int *)(var_18 + 3)) {
            var_36 = 0;
            uVar36 = 0;
            do {
              var_21 = *(int *)(var_18 + 0x58);
              if (0 < var_21) {
                var_26 = var_19 + var_31 * 4;
                var_24 = 0;
                var_22 = 0;
                do {
                  var_23 = *(int *)(*(int *)(var_18 + 0x5a) + var_24);
                  if (*(int *)(*(int *)(var_18 + 0x5a) + var_23 * 0xc + 4) != 0) {
                    var_32 = *(int *)(var_15 + 0x2d0) + var_23 * 0xc;
                    if (*(type_4 *)(var_32 + 4) != 0) {
                      if ((*(type_4 *)(var_32 + 4) & 1) == 0) {
                        var_27 = (double)(&uStack_2a0)[var_23] - (double)(&uStack_4a0)[var_23];
                        (&uStack_2a0)[var_23] = var_27;
                        *(type_3 *)((int)&uStack_4a0 + var_23 * 8 + 4) = 0;
                        *(type_3 *)(&uStack_4a0 + var_23) = 0;
                        if (0 < (int)var_30) {
                          var_33 = (var_17 - 1) * 4 * var_21;
                          var_21 = (*(int *)(var_18 + 3) + 1) * 4 * var_21 + var_33;
                          var_39 = (float *)(var_19 + var_22 * 4);
                          var_28 = (float *)(var_19 + var_33 + var_22 * 4);
                          var_34 = 0.0;
                          var_29 = (double *)0x0;
                          do {
                            var_34 = var_34 + (double)*var_39;
                            var_27 = var_27 + (double)*var_28;
                            var_29 = (double *)((int)var_29 + 1);
                            var_39 = (float *)((int)var_39 + var_21);
                            var_28 = (float *)((int)var_28 + var_21);
                          } while (var_29 != var_30);
                          (&uStack_4a0)[var_23] = var_34;
                          (&uStack_2a0)[var_23] = var_27;
                        }
                        var_27 = (double)(**(type_6 **)(var_11 + 0x202a90))(uVar6,uVar10);
                        uVar31 = (type_3)uVar36;
                        if ((double)*(float *)(var_26 + var_22 * 4) <=
                            (double)(&uStack_2a0)[var_23] / var_27 + var_35) {
                          var_21 = *(int *)(var_32 + 8);
                        }
                        else {
                          uVar31 = (type_3)uVar35;
                          var_21 = *(int *)(var_32 + 8);
                        }
                        *(type_3 *)(var_20 + var_21 * 4) = uVar31;
                      }
                      else {
                        *(type_3 *)(var_20 + *(int *)(var_32 + 8) * 4) =
                             *(type_3 *)(var_26 + var_22 * 4);
                      }
                    }
                  }
                  var_22 = var_22 + 1;
                  var_21 = *(int *)(var_18 + 0x58);
                  var_24 = var_24 + 0xc;
                } while (var_22 < var_21);
              }
              var_19 = var_19 + var_21 * 4;
              var_20 = var_20 + *(int *)(var_15 + 0x2c0) * 4;
              var_36 = var_36 + 1;
            } while (var_36 < *(int *)(var_18 + 3));
          }
          var_29 = pdVar11;
          var_19 = (**(type_6 **)(var_11 + 0x2036a0))(pdVar11,uVar13);
          if (var_19 == 0) {
            *(type_3 *)((int)var_10 + 0x2c) = 0;
          }
          if (*(int *)(var_18 + 0x65) != 0) {
            piVar26 = *(int **)(var_10 + 6);
            (**(type_6 **)(var_11 + 0x20348c))();
            var_25 = piVar26[1] + 1;
            *piVar26 = (type_4)(var_25 < (type_4)piVar26[1]) + *piVar26;
            piVar26[1] = var_25;
            (**(type_6 **)(var_11 + 0x2035e0))();
            var_29 = var_18;
            var_19 = (**(type_6 **)(var_11 + 0x202e5c))
                              (var_18,var_12 + 0xe60,**(type_3 **)(var_10 + 6),
                               (*(type_3 **)(var_10 + 6))[1],0,
                               *(type_3 *)((int)var_18 + 0x1c));
            if (var_19 == 0) {
              *(type_3 *)((int)var_10 + 0x2c) = 0;
            }
          }
        }
      }
      var_14 = var_14 + 1;
    } while (var_16 != var_14);
  }
  if (var_37 != (type_1 *)**(type_3 **)(var_11 + 0x2033d8)) {
    var_38 = *(type_6 **)(var_11 + 0x20320c);
    (*var_38)();
    var_16 = *(int *)(var_29 + 1);
    var_19 = *(int *)(var_16 + 0x1c);
    var_12 = (**(type_6 **)(var_38 + 0x203418))();
    var_15 = (**(type_6 **)(var_38 + 0x203014))();
    if (var_12 == 0) {
      var_13(7);
    }
    var_20 = var_19 / var_12;
    var_19 = var_19 % var_12;
    if (var_15 < var_19) {
      var_20 = var_20 + 1;
      var_19 = 0;
    }
    var_19 = var_20 * var_15 + var_19;
    var_20 = var_20 + var_19;
    var_7 = *(type_1 **)(var_38 + 0x2023d4);
    if (var_19 < var_20) {
      uVar10 = *(type_3 *)(var_29 + 2);
      uVar6 = *(type_3 *)((int)var_29 + 0xc);
      var_35 = *var_29;
      uVar35 = (type_7)*(type_4 *)(var_7[1].magick_filename + 0x390);
      var_12 = *(int *)(var_38 + 0x2023ec);
      do {
        var_7 = (type_1 *)0x1;
        if (*(int *)((int)var_29 + 0x14) != 0) {
          var_28 = (float *)(**(type_6 **)(var_38 + 0x203158))
                                       (uVar10,0,var_19,*(type_3 *)(var_16 + 0x18),1,uVar6);
          if (var_28 == (float *)0x0) {
            *(type_3 *)((int)var_29 + 0x14) = 0;
            var_7 = (type_1 *)0x0;
          }
          else {
            var_15 = 0;
            if (0 < *(int *)(var_16 + 0x18)) {
              do {
                var_27 = (double)(**(type_6 **)(var_38 + 0x202964))(var_16,var_28);
                var_31 = *(int *)(var_16 + 0x2c0);
                if (0 < var_31) {
                  var_26 = 0;
                  var_21 = 0;
                  var_39 = var_28;
                  do {
                    if ((*(type_4 *)(*(int *)(var_16 + 0x2d0) +
                                   *(int *)(*(int *)(var_16 + 0x2d0) + var_26) * 0xc + 4) & 2) != 0)
                    {
                      if (*(int *)(var_16 + 0x2cc) != 0x7ffffff) {
                        var_27 = (double)*var_39;
                      }
                      if (var_27 <= var_35) {
                        *var_39 = 0.0;
                      }
                      else {
                        *var_39 = (float)uVar35;
                      }
                    }
                    var_21 = var_21 + 1;
                    var_31 = *(int *)(var_16 + 0x2c0);
                    var_26 = var_26 + 0xc;
                    var_39 = var_39 + 1;
                  } while (var_21 < var_31);
                }
                var_28 = var_28 + var_31;
                var_15 = var_15 + 1;
              } while (var_15 < *(int *)(var_16 + 0x18));
            }
            var_15 = (**(type_6 **)(var_38 + 0x203004))(uVar10,uVar6);
            if (var_15 == 0) {
              *(type_3 *)((int)var_29 + 0x14) = 0;
            }
            var_7 = *(type_1 **)(var_16 + 0x328);
            if (var_7 != (type_1 *)0x0) {
              piVar26 = *(int **)(var_29 + 3);
              (**(type_6 **)(var_38 + 0x202df0))();
              var_17 = piVar26[1] + 1;
              *piVar26 = (type_4)(var_17 < (type_4)piVar26[1]) + *piVar26;
              piVar26[1] = var_17;
              (**(type_6 **)(var_38 + 0x202f44))();
              piVar26 = *(int **)(var_29 + 3);
              var_15 = *piVar26;
              var_17 = piVar26[1];
              *piVar26 = (type_4)(var_17 + 1 < var_17) + var_15;
              piVar26[1] = var_17 + 1;
              var_7 = (type_1 *)(**(type_6 **)(var_38 + 0x2027c0))
                                          (var_16,var_12 + 0xe68,var_15,var_17,0,
                                           *(type_3 *)(var_16 + 0x1c));
              if (var_7 == (type_1 *)0x0) {
                *(type_3 *)((int)var_29 + 0x14) = 0;
              }
            }
          }
        }
        var_19 = var_19 + 1;
      } while (var_20 != var_19);
    }
    return var_7;
  }
  return (type_1 *)**(type_3 **)(var_11 + 0x2033d8);
}


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

int MASKED(int param_1,undefined4 param_2)

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  undefined4 uVar7;
  double *pdVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  int iVar12;
  float *pfVar13;
  uint uVar14;
  double *pdVar15;
  double *pdVar16;
  double *pdVar17;
  float *pfVar18;
  int iVar19;
  int iVar20;
  int iVar21;
  int iVar22;
  int iVar23;
  int *piVar24;
  int iVar25;
  undefined *puVar26;
  code *pcVar27;
  double *pdVar28;
  undefined4 uVar29;
  double dVar30;
  double dVar31;
  double dVar32;
  ulonglong uVar33;
  undefined8 uVar34;
  int iVar35;
  int iStack_4e8;
  int iStack_4e4;
  undefined8 uStack_4a0;
  undefined8 uStack_2a0;
  int iStack_9c;
  int iStack_98;
  int iStack_94;
  undefined4 uStack_90;
  int local_38;
  int local_34;
  int local_30;
  int local_2c;
  int local_24;
  int local_20;
  int local_1c;
  int local_18;
  double *local_14;
  
  local_14 = *(double **)PTR___stack_chk_guard_003fa248;
  if (param_1 == 0) {
    iVar1 = (*(code *)PTR___assert_fail_003fa620)
                      (PTR_UINT_003f98e4 + -0x7b0,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4
                       ,0x96e,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);
    return iVar1;
  }
  if (*(int *)(param_1 + 0x336c) != -0x54535255) {
    iVar1 = (*(code *)PTR___assert_fail_003fa620)
                      (PTR_UINT_003f98e4 + -0x784,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4
                       ,0x96f,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xca8);
    return iVar1;
  }
  if (*(int *)(param_1 + 0x3350) != 0) {
    (*(code *)PTR_LogMagickEvent_003fa1f8)
              (0x8000,PTR_s_irtualMetacontentFromStream_003f98f8 + 0xbd4,
               PTR_s_irtualMetacontentFromStream_003f98f8 + 0xc9c,0x971);
  }
  (*(code *)PTR_GetImageBoundingBox_003fa9a0)(&local_38,param_1,param_2);
  local_24 = local_38;
  local_20 = local_34;
  local_1c = local_30;
  local_18 = local_2c;
  if ((local_38 == 0) || (local_34 == 0)) {
    iVar1 = (*(code *)PTR_CloneImage_003fa848)(param_1,1,1,1);
    if (iVar1 != 0) {
      *(undefined4 *)(iVar1 + 0x90) = 4;
      *(undefined4 *)(iVar1 + 0xd4) = 0;
      *(undefined4 *)(iVar1 + 0xd0) = 0;
      (*(code *)PTR_SetImageBackgroundColor_003f9ea8)(iVar1,param_2);
      uVar2 = *(undefined4 *)(param_1 + 0x22c);
      *(undefined4 *)(iVar1 + 0x228) = *(undefined4 *)(param_1 + 0x228);
      *(undefined4 *)(iVar1 + 0x22c) = uVar2;
      *(undefined4 *)(iVar1 + 0x230) = 0xffffffff;
      *(undefined4 *)(iVar1 + 0x234) = 0xffffffff;
    }
  }
  else {
    local_1c = local_30 + *(int *)(param_1 + 0x230);
    local_18 = local_2c + *(int *)(param_1 + 0x234);
    iVar1 = (*(code *)PTR_CropImage_003fa0d0)(param_1,&local_24,param_2);
    if (iVar1 != 0) {
      (*(code *)PTR_FUN_003f9ba0)
                (iVar1,*(undefined4 *)(param_1 + 0x18),*(undefined4 *)(param_1 + 0x1c),&local_24);
    }
  }
  if (local_14 == *(double **)PTR___stack_chk_guard_003fa248) {
    return iVar1;
  }
  pdVar15 = local_14;
  puVar26 = PTR___stack_chk_fail_003fa07c;
  (*(code *)PTR___stack_chk_fail_003fa07c)();
  iStack_9c = **(int **)(puVar26 + 0x2033d8);
  pdVar28 = *(double **)(pdVar15 + 2);
  iStack_4e4 = *(int *)((int)pdVar28 + 0x1c);
  iStack_98 = param_1;
  iStack_94 = iVar1;
  uStack_90 = param_2;
  iVar1 = (**(code **)(puVar26 + 0x203ab4))();
  iVar3 = (**(code **)(puVar26 + 0x2036b0))();
  if (iVar1 == 0) {
    trap(7);
  }
  iVar35 = iStack_4e4 / iVar1;
  iStack_4e4 = iStack_4e4 % iVar1;
  if (iVar3 < iStack_4e4) {
    iVar35 = iVar35 + 1;
    iStack_4e4 = 0;
  }
  pdVar16 = (double *)(iVar35 * iVar3);
  iStack_4e4 = (int)pdVar16 + iStack_4e4;
  iVar35 = iVar35 + iStack_4e4;
  if (iStack_4e4 < iVar35) {
    uVar7 = *(undefined4 *)((int)pdVar15 + 0xc);
    uVar2 = *(undefined4 *)(pdVar15 + 1);
    iVar3 = *(int *)(pdVar15 + 5);
    pdVar8 = *(double **)((int)pdVar15 + 0x24);
    uVar9 = *(undefined4 *)(pdVar15 + 4);
    uVar10 = *(undefined4 *)((int)pdVar15 + 0x1c);
    dVar32 = *pdVar15;
    pdVar17 = *(double **)(pdVar15 + 3);
    uVar11 = *(uint *)((int)pdVar15 + 0x14);
    iVar1 = *(int *)(puVar26 + 0x202a88);
    uVar33 = (ulonglong)*(uint *)(*(int *)(puVar26 + 0x202a70) + 0x4aa8);
    pdVar16 = pdVar17;
    do {
      if (*(int *)((int)pdVar15 + 0x2c) != 0) {
        iVar4 = (**(code **)(puVar26 + 0x203804))
                          (uVar9,-((int)uVar11 / 2),iStack_4e4 - ((uint)pdVar17 >> 1),
                           uVar11 + *(int *)(pdVar28 + 3),pdVar17,uVar10);
        pdVar16 = pdVar8;
        iVar5 = (**(code **)(puVar26 + 0x202df8))
                          (pdVar8,0,iStack_4e4,*(undefined4 *)(iVar3 + 0x18),1,uVar10);
        if ((iVar4 == 0) || (iVar5 == 0)) {
          *(undefined4 *)((int)pdVar15 + 0x2c) = 0;
        }
        else {
          iVar23 = *(int *)(pdVar28 + 0x58);
          iVar22 = ((uVar11 + *(int *)(pdVar28 + 3)) * ((uint)pdVar17 >> 1) + (uVar11 >> 1)) *
                   iVar23;
          if (0 < iVar23) {
            iVar21 = 0;
            iVar20 = 0;
            do {
              iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar21);
              iVar6 = iVar19 * 0xc;
              if ((*(int *)(*(int *)(pdVar28 + 0x5a) + iVar6 + 4) != 0) &&
                 (uVar14 = *(uint *)(*(int *)(iVar3 + 0x2d0) + iVar6 + 4), uVar14 != 0)) {
                if ((uVar14 & 1) == 0) {
                  *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;
                  *(undefined4 *)(&uStack_4a0 + iVar19) = 0;
                  *(undefined4 *)((int)&uStack_2a0 + iVar19 * 8 + 4) = 0;
                  *(undefined4 *)(&uStack_2a0 + iVar19) = 0;
                  if (0 < (int)pdVar17) {
                    pdVar16 = (double *)0x0;
                    iVar6 = iVar4;
                    do {
                      pfVar13 = (float *)(iVar6 + iVar20 * 4);
                      if (0 < (int)uVar11) {
                        dVar31 = (double)(&uStack_2a0)[iVar19];
                        uVar14 = 0;
                        do {
                          if (uVar11 - 1 == uVar14) {
                            (&uStack_4a0)[iVar19] = (double)(&uStack_4a0)[iVar19] + (double)*pfVar13
                            ;
                          }
                          dVar31 = dVar31 + (double)*pfVar13;
                          uVar14 = uVar14 + 1;
                          pfVar13 = pfVar13 + iVar23;
                        } while (uVar11 != uVar14);
                        iVar6 = iVar6 + uVar11 * iVar23 * 4;
                        (&uStack_2a0)[iVar19] = dVar31;
                      }
                      pdVar16 = (double *)((int)pdVar16 + 1);
                      iVar6 = *(int *)(pdVar28 + 3) * 4 * iVar23 + iVar6;
                    } while (pdVar16 != pdVar17);
                  }
                }
                else {
                  iVar6 = *(int *)(iVar3 + 0x2d0) + iVar6;
                  if (*(int *)(iVar6 + 4) != 0) {
                    *(undefined4 *)(iVar5 + *(int *)(iVar6 + 8) * 4) =
                         *(undefined4 *)(iVar4 + iVar20 * 4 + iVar22 * 4);
                  }
                }
              }
              iVar20 = iVar20 + 1;
              iVar23 = *(int *)(pdVar28 + 0x58);
              iVar21 = iVar21 + 0xc;
            } while (iVar20 < iVar23);
          }
          if (0 < *(int *)(pdVar28 + 3)) {
            iStack_4e8 = 0;
            uVar34 = 0;
            do {
              iVar23 = *(int *)(pdVar28 + 0x58);
              if (0 < iVar23) {
                iVar20 = iVar4 + iVar22 * 4;
                iVar6 = 0;
                iVar21 = 0;
                do {
                  iVar19 = *(int *)(*(int *)(pdVar28 + 0x5a) + iVar6);
                  if (*(int *)(*(int *)(pdVar28 + 0x5a) + iVar19 * 0xc + 4) != 0) {
                    iVar25 = *(int *)(iVar3 + 0x2d0) + iVar19 * 0xc;
                    if (*(uint *)(iVar25 + 4) != 0) {
                      if ((*(uint *)(iVar25 + 4) & 1) == 0) {
                        dVar31 = (double)(&uStack_2a0)[iVar19] - (double)(&uStack_4a0)[iVar19];
                        (&uStack_2a0)[iVar19] = dVar31;
                        *(undefined4 *)((int)&uStack_4a0 + iVar19 * 8 + 4) = 0;
                        *(undefined4 *)(&uStack_4a0 + iVar19) = 0;
                        if (0 < (int)pdVar17) {
                          iVar12 = (uVar11 - 1) * 4 * iVar23;
                          iVar23 = (*(int *)(pdVar28 + 3) + 1) * 4 * iVar23 + iVar12;
                          pfVar18 = (float *)(iVar4 + iVar21 * 4);
                          pfVar13 = (float *)(iVar4 + iVar12 + iVar21 * 4);
                          dVar30 = 0.0;
                          pdVar16 = (double *)0x0;
                          do {
                            dVar30 = dVar30 + (double)*pfVar18;
                            dVar31 = dVar31 + (double)*pfVar13;
                            pdVar16 = (double *)((int)pdVar16 + 1);
                            pfVar18 = (float *)((int)pfVar18 + iVar23);
                            pfVar13 = (float *)((int)pfVar13 + iVar23);
                          } while (pdVar16 != pdVar17);
                          (&uStack_4a0)[iVar19] = dVar30;
                          (&uStack_2a0)[iVar19] = dVar31;
                        }
                        dVar31 = (double)(**(code **)(puVar26 + 0x202a90))(uVar2,uVar7);
                        uVar29 = (undefined4)uVar34;
                        if ((double)*(float *)(iVar20 + iVar21 * 4) <=
                            (double)(&uStack_2a0)[iVar19] / dVar31 + dVar32) {
                          iVar23 = *(int *)(iVar25 + 8);
                        }
                        else {
                          uVar29 = (undefined4)uVar33;
                          iVar23 = *(int *)(iVar25 + 8);
                        }
                        *(undefined4 *)(iVar5 + iVar23 * 4) = uVar29;
                      }
                      else {
                        *(undefined4 *)(iVar5 + *(int *)(iVar25 + 8) * 4) =
                             *(undefined4 *)(iVar20 + iVar21 * 4);
                      }
                    }
                  }
                  iVar21 = iVar21 + 1;
                  iVar23 = *(int *)(pdVar28 + 0x58);
                  iVar6 = iVar6 + 0xc;
                } while (iVar21 < iVar23);
              }
              iVar4 = iVar4 + iVar23 * 4;
              iVar5 = iVar5 + *(int *)(iVar3 + 0x2c0) * 4;
              iStack_4e8 = iStack_4e8 + 1;
            } while (iStack_4e8 < *(int *)(pdVar28 + 3));
          }
          pdVar16 = pdVar8;
          iVar4 = (**(code **)(puVar26 + 0x2036a0))(pdVar8,uVar10);
          if (iVar4 == 0) {
            *(undefined4 *)((int)pdVar15 + 0x2c) = 0;
          }
          if (*(int *)(pdVar28 + 0x65) != 0) {
            piVar24 = *(int **)(pdVar15 + 6);
            (**(code **)(puVar26 + 0x20348c))();
            uVar14 = piVar24[1] + 1;
            *piVar24 = (uint)(uVar14 < (uint)piVar24[1]) + *piVar24;
            piVar24[1] = uVar14;
            (**(code **)(puVar26 + 0x2035e0))();
            pdVar16 = pdVar28;
            iVar4 = (**(code **)(puVar26 + 0x202e5c))
                              (pdVar28,iVar1 + 0xe60,**(undefined4 **)(pdVar15 + 6),
                               (*(undefined4 **)(pdVar15 + 6))[1],0,
                               *(undefined4 *)((int)pdVar28 + 0x1c));
            if (iVar4 == 0) {
              *(undefined4 *)((int)pdVar15 + 0x2c) = 0;
            }
          }
        }
      }
      iStack_4e4 = iStack_4e4 + 1;
    } while (iVar35 != iStack_4e4);
  }
  if (iStack_9c != **(int **)(puVar26 + 0x2033d8)) {
    pcVar27 = *(code **)(puVar26 + 0x20320c);
    (*pcVar27)();
    iVar35 = *(int *)(pdVar16 + 1);
    iVar4 = *(int *)(iVar35 + 0x1c);
    iVar1 = (**(code **)(pcVar27 + 0x203418))();
    iVar3 = (**(code **)(pcVar27 + 0x203014))();
    if (iVar1 == 0) {
      trap(7);
    }
    iVar5 = iVar4 / iVar1;
    iVar4 = iVar4 % iVar1;
    if (iVar3 < iVar4) {
      iVar5 = iVar5 + 1;
      iVar4 = 0;
    }
    iVar4 = iVar5 * iVar3 + iVar4;
    iVar5 = iVar5 + iVar4;
    iVar1 = *(int *)(pcVar27 + 0x2023d4);
    if (iVar4 < iVar5) {
      uVar7 = *(undefined4 *)(pdVar16 + 2);
      uVar2 = *(undefined4 *)((int)pdVar16 + 0xc);
      dVar32 = *pdVar16;
      uVar33 = (ulonglong)*(uint *)(iVar1 + 0x4aa8);
      iVar3 = *(int *)(pcVar27 + 0x2023ec);
      do {
        iVar1 = 1;
        if (*(int *)((int)pdVar16 + 0x14) != 0) {
          pfVar13 = (float *)(**(code **)(pcVar27 + 0x203158))
                                       (uVar7,0,iVar4,*(undefined4 *)(iVar35 + 0x18),1,uVar2);
          if (pfVar13 == (float *)0x0) {
            *(undefined4 *)((int)pdVar16 + 0x14) = 0;
            iVar1 = 0;
          }
          else {
            iVar1 = 0;
            if (0 < *(int *)(iVar35 + 0x18)) {
              do {
                dVar31 = (double)(**(code **)(pcVar27 + 0x202964))(iVar35,pfVar13);
                iVar22 = *(int *)(iVar35 + 0x2c0);
                if (0 < iVar22) {
                  iVar20 = 0;
                  iVar23 = 0;
                  pfVar18 = pfVar13;
                  do {
                    if ((*(uint *)(*(int *)(iVar35 + 0x2d0) +
                                   *(int *)(*(int *)(iVar35 + 0x2d0) + iVar20) * 0xc + 4) & 2) != 0)
                    {
                      if (*(int *)(iVar35 + 0x2cc) != 0x7ffffff) {
                        dVar31 = (double)*pfVar18;
                      }
                      if (dVar31 <= dVar32) {
                        *pfVar18 = 0.0;
                      }
                      else {
                        *pfVar18 = (float)uVar33;
                      }
                    }
                    iVar23 = iVar23 + 1;
                    iVar22 = *(int *)(iVar35 + 0x2c0);
                    iVar20 = iVar20 + 0xc;
                    pfVar18 = pfVar18 + 1;
                  } while (iVar23 < iVar22);
                }
                pfVar13 = pfVar13 + iVar22;
                iVar1 = iVar1 + 1;
              } while (iVar1 < *(int *)(iVar35 + 0x18));
            }
            iVar1 = (**(code **)(pcVar27 + 0x203004))(uVar7,uVar2);
            if (iVar1 == 0) {
              *(undefined4 *)((int)pdVar16 + 0x14) = 0;
            }
            iVar1 = *(int *)(iVar35 + 0x328);
            if (iVar1 != 0) {
              piVar24 = *(int **)(pdVar16 + 3);
              (**(code **)(pcVar27 + 0x202df0))();
              uVar11 = piVar24[1] + 1;
              *piVar24 = (uint)(uVar11 < (uint)piVar24[1]) + *piVar24;
              piVar24[1] = uVar11;
              (**(code **)(pcVar27 + 0x202f44))();
              piVar24 = *(int **)(pdVar16 + 3);
              iVar1 = *piVar24;
              uVar11 = piVar24[1];
              *piVar24 = (uint)(uVar11 + 1 < uVar11) + iVar1;
              piVar24[1] = uVar11 + 1;
              iVar1 = (**(code **)(pcVar27 + 0x2027c0))
                                (iVar35,iVar3 + 0xe68,iVar1,uVar11,0,*(undefined4 *)(iVar35 + 0x1c))
              ;
              if (iVar1 == 0) {
                *(undefined4 *)((int)pdVar16 + 0x14) = 0;
              }
            }
          }
        }
        iVar4 = iVar4 + 1;
      } while (iVar5 != iVar4);
    }
    return iVar1;
  }
  return **(int **)(puVar26 + 0x2033d8);
}

